Подтвердить что ты не робот

Исключение null point исключения Arrayadapter.getcount

Я получаю следующую трассировку стека (ниже полная копия), это дает мне мало или вообще не указывает на то, где в массивном приложении оно происходит, когда происходит неправильное, и пользовательская обратная связь не является чем-то большим, чем "Он разбился".

Есть ли что-нибудь, что я могу сделать, чтобы точно определить это?

java.lang.NullPointerException at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:291)
    at android.widget.AdapterView.checkFocus(AdapterView.java:689)
    at android.widget.AdapterView$AdapterDataSetObserver.onInvalidated(AdapterView.java:813)
    at android.database.DataSetObservable.notifyInvalidated(DataSetObservable.java:43)
    at android.widget.BaseAdapter.notifyDataSetInvalidated(BaseAdapter.java:54)
    at android.widget.ArrayAdapter$ArrayFilter.publishResults(ArrayAdapter.java:469)
    at android.widget.Filter$ResultsHandler.handleMessage(Filter.java:282)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:143)
    at android.app.ActivityThread.main(ActivityThread.java:4701)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:521)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    at dalvik.system.NativeStart.main(Native Method)
4b9b3361

Ответ 1

Посмотрите код для ArrayAdapter.getCount():

   /**
     * {@inheritDoc}
     */
    public int getCount() {
        return mObjects.size();
    }

Очевидно, что mObjects null, т.е. ваш ListView или другой тип, созданный AdapterView, пытается использовать адаптер, прежде чем вы его инициализировали с помощью данных.

Ответ 2

Что вы можете сделать, это поместить отладочную информацию перед каждым вызовом getCount(), используя класс журнала

Log.d("tag", "Trying to get count on line 50 class Test");

затем откройте logcat и найдите последнюю запись этого журнала до возникновения ошибки. Тогда у вас есть правильное место аварии.