0

電話を受けるか電話をかけた後 (およびその他の文書化されていない中断)、アクティビティを再開するときに、アプリケーションでNullPointerExceptionが発生します。それがどこにあるか、および/またはそれを修正する方法を私に説明できますか?

以下に示すようにコードを記述しました。

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.displayActivity);
        new performBackgroundTask().execute();
  }

  @Override
  public void onDestroy()
  {
    listview1.setAdapter(null);
    super.onDestroy();
  }

  private class performBackgroundTask extends AsyncTask <Void, Void, Void>  
  {
           private ProgressDialog Dialog = new ProgressDialog(displayActivity.this);

           protected void onPreExecute()
           {
               Dialog.setMessage(getString(R.string.dialog_wait_message));
               Dialog.show();
           }

           protected void onPostExecute(Void unused)    
           {
               Dialog.dismiss();    
               // displaying all the fetched data
           }

           @Override
            protected Void doInBackground(Void... params) 
            {
                 // fetching data from web using HTTPGet method 
                return null;   
        }
  }

Logcat の出力は次のとおりです。

java.lang.RuntimeException: アクティビティ {myApplication/MyApplication.displayActivity} を破棄できません: android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3655) での java.lang.NullPointerException android.app.ActivityThread.handleDestroyActivity(ActivityThread.java) :3673) android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3789) で android.app.ActivityThread.access$2400(ActivityThread.java:125) で android.app.ActivityThread$H.handleMessage(ActivityThread.java:2037) ) android.os.Handler.dispatchMessage(Handler.java:99) で android.os.Looper.loop(Looper.java:123) で android.app.ActivityThread.main(ActivityThread.java:4627) で java.lang com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) で dalvik.system.NativeStart.main(ネイティブ メソッド) 原因: java.lang.NullPointerException at MyApplication.displayActivity.onDestroy(displayActivity. java:74) android.app.ActivityThread.performDestroyActivity (ActivityThread.java:3642) で

さて、この問題を解決するのを手伝ってください。電話やSMSの受信、またはそのような種類の中断をどのように処理すればよいですか?

4

2 に答える 2

3

ステップ #1: ファイルの 74 行目を見つけdisplayActivity.javaます。

ステップ #2: 74 行目にある問題を修正します。

現在、スタック トレースは、74 行目がonDestroy(). 上記のアクティビティ コードが からのものであると仮定すると、displayActivity74 行目は次のようになります。

listview1.setAdapter(null);

つまりはlistview1ですnull。上記のコードでは、このデータ メンバーに値を宣言したり代入したりしません。

于 2010-10-30T07:51:37.630 に答える
0

の最初の行に BP を設定してみて、onDestroyvars/members を検証してどれがどれであるかを見つけますnull

于 2010-10-30T09:47:20.897 に答える