onPostExecute导致应用程序崩溃

时间:2013-09-14 22:56:03

标签: android

以下是我的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);                

        }}}

我可以帮助解决这个问题。

3 个答案:

答案 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
}