4.x デバイスを使用している一部のユーザーに対して、最近不思議なことに強制終了する Android アプリがあります。例外スタックを見ると、コードが実行される前にエラーが発生しているように見えますが、これを引き起こしている何かをしていると思います。
*原因やスタックを見つける方法に何か問題がありますか? それ以外の場合、これが完全なスタック トレースである場合、コードが実行される前に Android が失敗する可能性は本当にありますか? *
UncaughtExceptionHandler
私は myApplication
のメソッドに myを登録しているので、後者はありそうにないonCreate()
と思います。通常、ユーザーからファイルを取得します。
私のエラーログコードは以下の通りです:
アプリThread.UncaughtExceptionHandler
の . エラーが発生すると、例外情報をログインに書き込みますuncaughtException(Thread thread,Throwable ex)
。これは、印刷する文字列を見つける方法です。
// Get exception info
String newLine = "\r\n";
String message = "Message: " + ex.getMessage();
String cause = "Cause: " + ex.getCause();
StackTraceElement[] stes = ex.getStackTrace();
String stack;
// build stack trace
stack = "Stack: " + newLine;
for ( int i = 0; i < stes.length; i++ )
{
stack += stes[i].toString();
stack += newLine;
}
// print out message
// print out cause
// print out stack
これをファイルに出力します:
Message: Unable to create application com.(Modified app name for anonimity).*.*Application: java.lang.IllegalArgumentException
Cause: java.lang.IllegalArgumentException
Stack:
android.app.ActivityThread.handleBindApplication(ActivityThread.java:4254)
android.app.ActivityThread.access$1400(ActivityThread.java:140)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1297)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4921)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
dalvik.system.NativeStart.main(Native Method)
PS はい、ACRA については知っていますが、現時点では使用したくありません。