我正在尝试调试似乎在低内存条件下发生的我的 Android 应用程序的神秘崩溃。相关应用程序的来源可从https://bitbucket.org/stativ/chmupocasi获得。该应用程序的包是cz.jirkovsky.lukas.chmupocasi
发生的情况是,当手机开始内存不足并且我尝试从最近的应用程序列表中重新打开应用程序(长按主页按钮后显示的应用程序)时,应用程序崩溃。
我尝试使用 Android Studio 调试应用程序,但应用程序总是在遇到主 Activity 的 onCreate() 和 onStart() 中的任何断点之前崩溃,从而无法调试。更糟糕的是,即使是 logcat 也不包含任何信息,应用程序崩溃时显示的唯一相关行是:
I/ActivityManager( 428): Displayed cz.jirkovsky.lukas.chmupocasi/.MainActivity: +1s45ms (total +23m23s835ms)
完整的 logcat 可在http://pastebin.com/TtSuqxCW获得,以防我遗漏了什么。
最后,我尝试在应用程序崩溃后将调试器附加到应用程序,此时会显示 Android 的对话框“不幸的是应用程序已停止”。我没有看到我的任何代码在任何线程中运行。以下是“导出线程”包含的内容:
<1> main@830017304224, prio=5, in group 'main', status: 'RUNNING'
at android.os.BinderProxy.transact(Binder.java:-1)
at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:3147)
at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:76)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
at dalvik.system.NativeStart.main(NativeStart.java:-1)
<10> Binder_2@830026133152, prio=5, in group 'main', status: 'RUNNING'
at dalvik.system.NativeStart.run(NativeStart.java:-1)
<9> Binder_1@830026131496, prio=5, in group 'main', status: 'RUNNING'
at dalvik.system.NativeStart.run(NativeStart.java:-1)
<8> FinalizerWatchdogDaemon@830026116408 daemon, prio=5, in group 'system', status: 'WAIT'
at java.lang.Object.wait(Object.java:-1)
at java.lang.Object.wait(Object.java:364)
at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:214)
at java.lang.Thread.run(Thread.java:856)
<7> FinalizerDaemon@830026115976 daemon, prio=5, in group 'system', status: 'WAIT'
at java.lang.Object.wait(Object.java:-1)
at java.lang.Object.wait(Object.java:401)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:169)
at java.lang.Thread.run(Thread.java:856)
<6> ReferenceQueueDaemon@830026115560 daemon, prio=5, in group 'system', status: 'WAIT'
at java.lang.Object.wait(Object.java:-1)
at java.lang.Object.wait(Object.java:364)
at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:129)
at java.lang.Thread.run(Thread.java:856)
<5> Compiler@830026115320 daemon, prio=5, in group 'system', status: 'WAIT'
at dalvik.system.NativeStart.run(NativeStart.java:-1)
<3> Signal Catcher@830026114840 daemon, prio=5, in group 'system', status: 'WAIT'
at dalvik.system.NativeStart.run(NativeStart.java:-1)
<2> GC@830026114616 daemon, prio=5, in group 'system', status: 'WAIT'
at dalvik.system.NativeStart.run(NativeStart.java:-1)
如果我尝试检查主线程,我可以看到 ThreadGroup 中某处存在未处理的异常:
No such instance field: 'nthreads'
任何想法如何调试此类崩溃或如何获取有关它的更多信息?