Ich habe ein Array mit zwei Strings. Ich möchte es nach alphabetischer Reihenfolge sortieren. Das ist der folgende Code.java.lang.String.compareToIgnoreCase (java.lang.String) 'auf einem Nullobjekt Referenz
ArrayList<String> a = new ArrayList<>();
j = (String) b.get ("user");
a.add (j);
chatroomname.setText (j);
a.add (Fusername);
Log.i ("Size Of A ", String.valueOf (a.size()));
Collections.sort (a, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareToIgnoreCase (o2);
}
});
Ich protokollierte auch die Größe des Arrays auf meiner Konsole. Und es zeigt 2. Das ist richtig. Also verstehe ich nicht, warum ich diese Null-Null-Wahrnehmung bekomme.
Hier ist mein Fehlerprotokoll:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.buckydroid.anonchat/com.buckydroid.anonchat.ChatRoom}: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.compareToIgnoreCase(java.lang.String)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6126)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.compareToIgnoreCase(java.lang.String)' on a null object reference
at com.buckydroid.anonchat.ChatRoom$5.compare(ChatRoom.java:244)
at com.buckydroid.anonchat.ChatRoom$5.compare(ChatRoom.java:242)
at java.util.TimSort.countRunAndMakeAscending(TimSort.java:351)
at java.util.TimSort.sort(TimSort.java:216)
at java.util.Arrays.sort(Arrays.java:1523)
at java.util.Collections.sort(Collections.java:238)
at com.buckydroid.anonchat.ChatRoom.onCreate(ChatRoom.java:241)
at android.app.Activity.performCreate(Activity.java:6679)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6126)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Thanx !!!
Meine Vermutung ist, dass ein oder mehrere Werte in Ihrer Liste null ist. Ich schlage vor, Sie durchlaufen den Code in Ihrem Debugger, um zu sehen, welcher und warum. –
Liste 'a' ausdrucken, um zu sehen, was da drin ist ... – nafas
Mögliches Duplikat von [Was ist eine NullPointerException und wie behebe ich sie?] (Http://stackoverflow.com/questions/218384/what-is- a-nullpointerexception-and-how-do-i-fix-it) –