Opa Galera, blz?
Estou com um problema dificil de resolver…
Criei uma app Android 2.3 que rodava blz acessando SQLite. Depois de algumas alterações, começou a dar problema em duas telas.
O problema ocorre com um certo padrao e frequencia qndo o celular está desconectado ( usb <–> eclipse ), e dificilmente ocorre quando está conectado.
É um problema só, mas acontece em 3 telas diferentes, gerando 3 stacktraces diferentes.
Basicamente, eh uma tela (tela 1) com um botao e duas combos, q dependendo da escolha em uma combo, vai abrir com startActivityForResult mais uma tela(tela 2) ou outra(tela 3).
Quando acontece na tela 1: ao clickar no botao para abrir a tela 2 ou 3, a tela trava e depois de alguns segundos o android fala q a app deu erro e vai fecha-la. Também jah travou qndo eu estava apenas rolando um ListView na tela 1.
Quando acontece na tela 2 e 3: pode acontecer após clickar em uma caixa de texto e digitar algo no teclado virtual, ao digitar, trava. Tb pode acontecer ao clickar na caixa de texto, antes do teclado aparecer…
As telas 2 e 3 nao acessam/manipulam a base de dados sql, apenas a tela 1
Antes de travar, consigo abrir as telas 2 e 3 algumas vezes sem problema algum, certa hora, qndo vou abri-la novamente, trava.
Inicialmente imaginei que fosse problema de memoria, mas descartei considerando q qndo está conectado, dificilmente trava. Simplesmente, qndo está conectado, posso abrir as telas 2 e 3 dezenas de vezes e nao apresentar travamento.
Já verifiquei o Manifest algumas vezes tb.
Vou postar um dos stacktraces q consegui recuperar. Quando esse erro ocorreu eu jah estava com a tela 1 aberta( br.com.etica.vendaspocketandroid.view.RecebimentoActivity ) e com dados carregados. O erro ocorreu ao tentar abrir a tela 2 a partir de um botao existente na tela 1. Pelo q entendi, deu problema na tela 1 e o android tentou recria-la, mas como jah houve algum erro no meio, ele nao conseguiu e trouxe o stacktrace da tentativa de reabertura da tela, e nao o q fez a tela dar problema.
Todas as telas herdam de uma BaseActivity que só possui um metodo.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread paramThread, Throwable paramThrowable) {
//Toast.makeText(getApplicationContext(), paramThrowable.getMessage(), Toast.LENGTH_LONG).show();
Helper.writeToFile(Log.getStackTraceString(paramThrowable));
Log.e("Alert Etica",Log.getStackTraceString(paramThrowable));
}
});
}
Write to file grava a stacktrace ( abaixo ) em um arquivo externo, jah q eu nao consegui capturar com o Toast.
Já fiz algumas tentativas de encontrar o erro sem sucesso. Portanto, estou aberto a todas as sugestões. Valeu!
java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.etica.vendaspocketandroid/br.com.etica.vendaspocketandroid.view.RecebimentoActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at br.com.etica.vendaspocketandroid.view.RecebimentoActivity.onCreate(RecebimentoActivity.java:46)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
… 11 more