Ich erhalte eine Nullpointerexzeption in meinem benutzerdefinierten ArrayAdapter in meiner App. Ich weiß nicht, warum hier ein Nullpointer steht. Und ich kann diese Ausnahme nicht reproduzieren. Die Ausnahme erschien nicht lange und ich habe keine Code-Änderungen, so dass es noch seltsamer macht. Der Code ist:
%Vor%Die Ausnahme wird in der getView-Methode in der ersten Zeile ausgelöst. Ich habe meine App debugged und super.getView mit Nullparametern aufgerufen, aber keine Nullpointerexception wurde ausgelöst, also sieht es so aus, dass super null war, aber wie kann das sein ??? Der StackTrace ist:
java.lang.NullPointerException bei android.widget.ArrayAdapter.createViewFromResource (ArrayAdapter.java:355) bei android.widget.ArrayAdapter.getView (ArrayAdapter.java:323) bei de.hartig.abt.activity.BluetoothDeviceList $ MyAdapter.getView (BluetoothDeviceList.java : 140) bei android.widget.AbsListView.obtainView (AbsListView.java:1408) bei android.widget.ListView.makeAndAddView (ListView.java:1727) bei android.widget.ListView.fillDown (ListView.java:652) bei android.widget.ListView.fillFromTop (ListView.java:709) bei android.widget.ListView.layoutChildren (ListView.java:1580) bei android.widget.AbsListView.onLayout (AbsListView.java:1240) bei android.view.View.layout (View.java:7057) bei android.widget.FrameLayout.onLayout (FrameLayout.java:333) bei android.view.View.layout (View.java:7057) bei android.widget.LinearLayout.setChildFrame (LinearLayout.java:1249) bei android.widget.LinearLayout.layoutVertical (LinearLayout.java:1125) bei android.widget.LinearLayout.onLayout (LinearLayout.java:1042) bei android.view.View.layout (View.java:7057) bei android.widget.FrameLayout.onLayout (FrameLayout.java:333) bei android.view.View.layout (View.java:7057) bei android.view.ViewRoot.performTraversals (ViewRoot.java:1045) bei android.view.ViewRoot.handleMessage (ViewRoot.java:1727) bei android.os.Handler.dispatchMessage (Handler.java:99) bei android.os.Looper.loop (Looper.java:123) bei android.app.ActivityThread.main (ActivityThread.java:4680) at java.lang.reflect.Method.invokeNative (Native Methode) bei java.lang.reflect.Method.invoke (Methode.java:521) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:858) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616) bei dalvik.system.NativeStart.main (Native Methode)
Weiß jemand, wie ich dieses Problem lösen kann? Danke für die Hilfe !!!
Sie rufen wahrscheinlich add
mit einem null
Wert an und der ArrayAdapter
erstickt daran. Um das Problem weiter zu diagnostizieren, müssen wir den Code für fetchAllDevicesAsMap
sehen oder wo auch immer Sie Elemente zu ArrayAdapter
hinzufügen.
Ein Auszug aus ArrayAdapter.java in createViewFromResource
:
Dies zeigt an, dass ArrayAdapter
einem NullPointerException
erliegen wird, wenn eines der Elemente im zugrunde liegenden Array null
ist.
Aus dem Stack-Trace können Sie deutlich sehen, dass super
nicht null war, da es in android.widget.ArrayAdapter.getView()
ging.
Sie können sich die Quelle für android.widget.ArrayAdapter.createViewFromResource
line 355 ansehen, um zu versuchen, die wahre Ursache Ihres Nullzeigers zu ermitteln.
AKTUALISIEREN
Ich habe einen kurzen Blick auf den Code geworfen, und es fehlt in dieser Zeile text.setText(item.toString());
, so dass entweder text
oder item
null sind.
Sie können sich den Code hier ansehen: android.widget. ArrayAdapter-Quelle
Tags und Links android nullpointerexception android-arrayadapter