У меня проблема с заполнением ListView с помощью AsyncTask. Обычно он работает нормально, но он очень медленный. Поэтому я внедрил AsyncTask, который должен вернуть значения, а затем адаптер может использовать их для отображения в ListView.Android Sqlite AsyncTask заполняет ListView Null Pointer
Однако, если я запустил это, он возвращает значение nullPointerException для значений.
Оба значения и источник данных являются глобальными переменными, поэтому он должен навредить там. Они работают, когда нити не используются.
Может ли быть, что поток, поскольку он асинхронный, не имеет созданных значений, и поэтому он обращается к nullPointer, когда я должен загружать значения тогда?
MyAsynch myAs = new MyAsynch();
myAs.execute();
MySimpleArrayAdapter adapter = new MySimpleArrayAdapter(this, values);
private class MyAsynch extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void...strings) { // run time intensive task in separate thread
datasource = new ReadingsDataSource(getApplicationContext());
datasource.open();
values = datasource.getAllReadings();
datasource.close();
return null;
}
};
Здесь ошибка:
08-20 12:21:32.107: E/AndroidRuntime(6896): FATAL EXCEPTION: main
08-20 12:21:32.107: E/AndroidRuntime(6896): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException
08-20 12:21:32.107: E/AndroidRuntime(6896): at android.app.LoadedApk.makeApplication(LoadedApk.java:482)
08-20 12:21:32.107: E/AndroidRuntime(6896): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3952)
08-20 12:21:32.107: E/AndroidRuntime(6896): at android.app.ActivityThread.access$1300(ActivityThread.java:128)
08-20 12:21:32.107: E/AndroidRuntime(6896): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
08-20 12:21:32.107: E/AndroidRuntime(6896): at android.os.Handler.dispatchMessage(Handler.java:99)
08-20 12:21:32.107: E/AndroidRuntime(6896): at android.os.Looper.loop(Looper.java:137)
08-20 12:21:32.107: E/AndroidRuntime(6896): at android.app.ActivityThread.main(ActivityThread.java:4514)
08-20 12:21:32.107: E/AndroidRuntime(6896): at java.lang.reflect.Method.invokeNative(Native Method)
08-20 12:21:32.107: E/AndroidRuntime(6896): at java.lang.reflect.Method.invoke(Method.java:511)
08-20 12:21:32.107: E/AndroidRuntime(6896): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
08-20 12:21:32.107: E/AndroidRuntime(6896): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
08-20 12:21:32.107: E/AndroidRuntime(6896): at dalvik.system.NativeStart.main(Native Method)
08-20 12:21:32.107: E/AndroidRuntime(6896): Caused by: java.lang.NullPointerException
08-20 12:21:32.107: E/AndroidRuntime(6896): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:362)
08-20 12:21:32.107: E/AndroidRuntime(6896): at android.app.LoadedApk.getClassLoader(LoadedApk.java:305)
08-20 12:21:32.107: E/AndroidRuntime(6896): at android.app.LoadedApk.makeApplication(LoadedApk.java:474)
08-20 12:21:32.107: E/AndroidRuntime(6896): ... 11 more
Вы можете разместить трассировки стека – Raghunandan
Ненавижу отредактированный пост – totpiko