以下是我的onPostExecute
方法。当我的AsyncTask
触发时,它执行它应该执行的所有操作,但是当它尝试执行我的onPostExecute
我的应用程序崩溃时,我会在logcat
09-14 22:45:22.481: E/AndroidRuntime(1141): FATAL EXCEPTION: main
09-14 22:45:22.481: E/AndroidRuntime(1141): java.lang.NullPointerException
09-14 22:45:22.481: E/AndroidRuntime(1141): at com.testapp1.ListView$LoadAllData.onPostExecute(ListView.java:193)
09-14 22:45:22.481: E/AndroidRuntime(1141): at com.testapp1.ListView$LoadAllData.onPostExecute(ListView.java:1)
09-14 22:45:22.481: E/AndroidRuntime(1141): at android.os.AsyncTask.finish(AsyncTask.java:631)
09-14 22:45:22.481: E/AndroidRuntime(1141): at android.os.AsyncTask.access$600(AsyncTask.java:177)
09-14 22:45:22.481: E/AndroidRuntime(1141): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
09-14 22:45:22.481: E/AndroidRuntime(1141): at android.os.Handler.dispatchMessage(Handler.java:99)
09-14 22:45:22.481: E/AndroidRuntime(1141): at android.os.Looper.loop(Looper.java:137)
09-14 22:45:22.481: E/AndroidRuntime(1141): at android.app.ActivityThread.main(ActivityThread.java:5041)
09-14 22:45:22.481: E/AndroidRuntime(1141): at java.lang.reflect.Method.invokeNative(Native Method)
09-14 22:45:22.481: E/AndroidRuntime(1141): at java.lang.reflect.Method.invoke(Method.java:511)
09-14 22:45:22.481: E/AndroidRuntime(1141): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-14 22:45:22.481: E/AndroidRuntime(1141): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-14 22:45:22.481: E/AndroidRuntime(1141): at dalvik.system.NativeStart.main(Native Method)
这是我的onPostExecute
方法
@Override
protected void onPostExecute(String file_URL) {
if(file_URL.equals("0")) {
pDialog.dismiss();
Toast.makeText(ListView.this, "No data found", Toast.LENGTH_SHORT).show();
finish();
}else{
if (pDialog != null && pDialog.isShowing()) pDialog.dismiss();
ListAdapter adapter = new SimpleAdapter(getBaseContext(), questionList,
R.layout.listelements,
new String[] { TAG_QUESTION_SUBJECT }, new int[] {
R.id.Subject,});
setListAdapter(adapter);
}}}
我可以帮助解决这个问题。
答案 0 :(得分:1)
尝试更改行
if(file_URL.equals("0")) {
到
if(file_URL == null || file_URL.equals("0")) {
答案 1 :(得分:1)
只需检查file_URL:if(file_URL!=null && file_URL.equals("0"))
答案 2 :(得分:0)
if(file_URL.equals("0"))
是第193行,所以这就是NPE发生的地方。这里发生的是file_URL
本身为null,并且你正在运行一个关闭空项的方法 - 因此问题。
所以要解决这个问题,请将其包装起来:
if(file_URL != null){
// Your code
}