Pergunta

Depois de receber um telefonema ou fazer um (e outras interrupções sem documentos), meu aplicativo recebe um Null Pointer Exception Ao retomar minha atividade. Alguém pode me explicar onde está e/ou como corrigi -lo?

Eu escrevi o código como mostrado abaixo:

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

A saída logcat é:

Java.lang.RuntimeException: Incapaz de destruir a atividade {myApplication/myApplication.DisplayActivity}: java.lang.nullPointerException em android.app.activityThread.performDerroyActivity (atividadethread.java:3655) em android.ativity.ativityth.atividade (atividadethread.java:3655) em Android.ative.atividade : 3673) em android.app.activityThread.HandleLaunchActivity (ActivityThread.java:3789) em android.app.activitythread.access $ 2400 (ActivityThread.java:125) em android.app.activityThread $ h.HandLemessage (Atividade:.JAVA) ) em android.os.handler.dispatchmessage (handler.java:99) em android.os.looper.loop (looper.java:123) em android.app.activitythread.main (atividadethread.java:4627) em java.lang. .reflect.method.invokenative (método nativo) em java.lang.reflect.method.invoke (method.java:521) em com.android.internal.os.zygoteinit $ methodandargscaller.run (zygotein.java:888) .android.internal.os.zygoteinit.main (zygoteinit.java:626) em dalvik.system.nativestart.main (método nativo) causado por: java.lang.nullpoin terexception em myapplication.displayactivity.ondestroy (displayActivity.java:74) em android.app.activitythread.performDestroyActivity (ActivityThread.java:3642)

Agora, por favor, me ajude a resolver esse problema, como lido com telefonema ou SMS recebido ou esse tipo de interrupção?

Foi útil?

Solução

Etapa 1: encontre a linha 74 do displayActivity.java Arquivo.

Etapa 2: Corrija qualquer problema na linha 74.

Agora, o Trace Stack sugere que a linha 74 está em onDestroy(). Assumindo que o código de atividade que você listou acima é de displayActivity, então a linha 74 deve ser:

listview1.setAdapter(null);

Que significa listview1 é null. Você não declara nem atribui um valor a esse membro de dados no código que você listou acima.

Outras dicas

tente definir uma BP na primeira linha de onDestroy e validar vars/membros para descobrir qual é null

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top