Question

Après avoir reçu soit un appel téléphonique ou faire un (et d'autres interruptions non documentées) ma demande obtient un NullPointerException lors de la reprise de mon activité. Quelqu'un peut-il me expliquer où il est et / ou comment le résoudre?

J'ai écrit le code comme indiqué ci-dessous:

 @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;   
        }
  }

Sortie Logcat est:

java.lang.RuntimeException: Impossible de détruire l'activité {monApplication / MyApplication.displayActivity}: java.lang.NullPointerException à android.app.ActivityThread.performDestroyActivity (ActivityThread.java:3655) à 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.reflect.Method.invokeNative (Méthode natif) à java.lang.reflect.Method.invoke (Method.java:521) à com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868) à com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626) à dalvik.system.NativeStart.main (Méthode natif) Causée par: java.lang.NullPointerException à MyApplication.displayActivity.onDestroy (displayActivity.java:74) à android.app.ActivityThread.performDestroyActivity (ActivityThread.java:3642)

maintenant, merci de me aider à résoudre ce problème, comment faire appel téléphonique ou SMS poignée i reçu ou ce type d'interruptions?

Était-ce utile?

La solution

Étape # 1:. Trouver la ligne 74 du fichier displayActivity.java

Étape # 2:. Corrigeons ce problème est en ligne 74

Maintenant, la trace de la pile indique que la ligne 74 est en onDestroy(). Si l'on suppose que le code d'activité que vous avez énumérés ci-dessus est de displayActivity, puis la ligne 74 doit être:

listview1.setAdapter(null);

Cela signifie listview1 est null. Vous ne déclaration et n'attribuer une valeur à ce membre de données dans le code que vous avez énumérés ci-dessus.

Autres conseils

essayez de définir une BP à la première ligne de onDestroy et validate vars / membres pour trouver un est null

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top