WIN DEATH: android.osDeadObjectException 是什么意思?

What does WIN DEATH: android.osDeadObjectException mean?

我正在旧 Android 版本上测试我的应用程序。它在 Android 4.4.4 上运行良好,但 4.3 似乎在打开应用程序时立即崩溃。我不知道这个错误是什么意思:

W/dalvikvm( 9296): Invalid indirect reference 0xa4fdcc00 in decodeIndirectRef
I/dalvikvm( 9296): "main" prio=5 tid=1 RUNNABLE
I/dalvikvm( 9296):   | group="main" sCount=0 dsCount=0 obj=0xa4b86480 self=0xb79b6bd0
I/dalvikvm( 9296):   | sysTid=9296 nice=-4 sched=0/0 cgrp=[fopen-error:2] handle=-1217191904
I/dalvikvm( 9296):   | state=R schedstat=( 172387119 425972608 908 ) utm=10 stm=6 core=0
I/dalvikvm( 9296):   at android.webkit.CookieManagerClassic.nativeAcceptCookie(Native Method)
I/dalvikvm( 9296):   at android.webkit.CookieManagerClassic.acceptCookie(CookieManagerClassic.java:49)
I/dalvikvm( 9296):   at com.facebook.ads.internal.f.e.<init>((null):-1)
I/dalvikvm( 9296):   at com.facebook.ads.internal.f.e.a((null):-1)
I/dalvikvm( 9296):   at com.facebook.ads.internal.server.c.a((null):-1)
I/dalvikvm( 9296):   at com.facebook.ads.internal.server.c.a((null):-1)
I/dalvikvm( 9296):   at com.facebook.ads.internal.server.a.a((null):-1)
I/dalvikvm( 9296):   at com.facebook.ads.internal.server.a.a((null):-1)
I/dalvikvm( 9296):   at com.facebook.ads.internal.server.a.a((null):-1)
I/dalvikvm( 9296):   at com.facebook.ads.internal.i.a.h.a((null):-1)
I/dalvikvm( 9296):   at com.facebook.ads.internal.i.a.h.onPostExecute((null):-1)
I/dalvikvm( 9296):   at android.os.AsyncTask.finish(AsyncTask.java:631)
I/dalvikvm( 9296):   at android.os.AsyncTask.access0(AsyncTask.java:177)
I/dalvikvm( 9296):   at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
I/dalvikvm( 9296):   at android.os.Handler.dispatchMessage(Handler.java:99)
I/dalvikvm( 9296):   at android.os.Looper.loop(Looper.java:137)
I/dalvikvm( 9296):   at android.app.ActivityThread.main(ActivityThread.java:5103)
I/dalvikvm( 9296):   at java.lang.reflect.Method.invokeNative(Native Method)
I/dalvikvm( 9296):   at java.lang.reflect.Method.invoke(Method.java:525)
I/dalvikvm( 9296):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
I/dalvikvm( 9296):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
I/dalvikvm( 9296):   at dalvik.system.NativeStart.main(Native Method)
I/dalvikvm( 9296):
E/dalvikvm( 9296): VM aborting
F/libc    ( 9296): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1), thread 9296 (mycompany.myapp)
I/DEBUG   ( 3470): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   ( 3470): Build fingerprint: 'generic/vbox86p/vbox86p:4.3/JLS36G/eng.genymotion.20160825.132445:userdebug/test-keys'
I/DEBUG   ( 3470): Revision: '0'
I/DEBUG   ( 3470): pid: 9296, tid: 9296, name: mycompany.myapp  >>> com.mycompany.myapp <<<
I/DEBUG   ( 3470): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadd00d
I/DEBUG   ( 3470):
I/DEBUG   ( 3470): backtrace:
I/DEBUG   ( 3470):     #00  pc 00071022  /system/lib/libdvm.so (dvmAbort+194)
I/DEBUG   ( 3470):     #01  pc 0007605d  /system/lib/libdvm.so (_Z20dvmDecodeIndirectRefP6ThreadP8_jobject.part.36+77)
I/DEBUG   ( 3470):     #02  pc 0007d8c1  /system/lib/libdvm.so (GetStringUTFChars(_JNIEnv*, _jstring*, unsigned char*)+97)
I/DEBUG   ( 3470):     #03  pc 00535321  /system/lib/libwebcore.so (android::jstringToStdString(_JNIEnv*, _jstring*)+81)
I/DEBUG   ( 3470):     #04  pc 00512d18  /system/lib/libwebcore.so (android::databaseDirectory(bool)+1048)
I/DEBUG   ( 3470):     #05  pc ffffffff  <unknown>
I/DEBUG   ( 3470):
I/DEBUG   ( 3470): stack:
I/DEBUG   ( 3470):          bf808b60  00000000
I/DEBUG   ( 3470):          bf808b64  00000000
I/DEBUG   ( 3470):          bf808b68  00000000
I/DEBUG   ( 3470):          bf808b6c  00000000
I/DEBUG   ( 3470):          bf808b70  00000000
I/DEBUG   ( 3470):          bf808b74  00000000
I/DEBUG   ( 3470):          bf808b78  00000000
I/DEBUG   ( 3470):          bf808b7c  00000000
I/DEBUG   ( 3470):          bf808b80  00000000
I/DEBUG   ( 3470):          bf808b84  00000000
I/DEBUG   ( 3470):          bf808b88  00000000
I/DEBUG   ( 3470):          bf808b8c  00000000
I/DEBUG   ( 3470):          bf808b90  00000000
I/DEBUG   ( 3470):          bf808b94  00000000
I/DEBUG   ( 3470):          bf808b98  00000000
I/DEBUG   ( 3470):          bf808b9c  46505845
I/DEBUG   ( 3470):     #00  bf808ba0  00000000
I/DEBUG   ( 3470):          bf808ba4  b6137421  /system/lib/libdvm.so
I/DEBUG   ( 3470):          bf808ba8  b6138894  /system/lib/libdvm.so
I/DEBUG   ( 3470):          bf808bac  00000000
I/DEBUG   ( 3470):          bf808bb0  b7c8ad28  [heap]
I/DEBUG   ( 3470):          bf808bb4  b6137421  /system/lib/libdvm.so
I/DEBUG   ( 3470):          bf808bb8  b613790b  /system/lib/libdvm.so
I/DEBUG   ( 3470):          bf808bbc  6c756e28
I/DEBUG   ( 3470):          bf808bc0  0000296c
I/DEBUG   ( 3470):          bf808bc4  00000000
I/DEBUG   ( 3470):          bf808bc8  00000000
I/DEBUG   ( 3470):          bf808bcc  00000000
I/DEBUG   ( 3470):          bf808bd0  00000000
I/DEBUG   ( 3470):          bf808bd4  00000000
I/DEBUG   ( 3470):          bf808bd8  00000000
I/DEBUG   ( 3470):          bf808bdc  00000000
I/DEBUG   ( 3470):          ........  ........
I/DEBUG   ( 3470):     #01  bf808dd0  b79b6bd0  [heap]
I/DEBUG   ( 3470):          bf808dd4  00000000
I/DEBUG   ( 3470):          bf808dd8  b6145838  /system/lib/libdvm.so
I/DEBUG   ( 3470):          bf808ddc  a4fdcc00  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   ( 3470):          bf808de0  b79b6bd0  [heap]
I/DEBUG   ( 3470):          bf808de4  b603a016  /system/lib/libdvm.so (_Z20dvmDecodeIndirectRefP6ThreadP8_jobject.part.36+6)
I/DEBUG   ( 3470):          bf808de8  b6185ccc  /system/lib/libdvm.so
I/DEBUG   ( 3470):          bf808dec  b60418c2  /system/lib/libdvm.so (GetStringUTFChars(_JNIEnv*, _jstring*, unsigned char*)+98)
I/DEBUG   ( 3470):     #02  bf808df0  b79b6bd0  [heap]
I/DEBUG   ( 3470):          bf808df4  a4fdcc00  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   ( 3470):          bf808df8  00000012
I/DEBUG   ( 3470):          bf808dfc  b6059b79  /system/lib/libdvm.so (dvmChangeStatus(Thread*, ThreadStatus)+25)
I/DEBUG   ( 3470):          bf808e00  b75a06c0
I/DEBUG   ( 3470):          bf808e04  99aa3734  /system/lib/libwebcore.so
I/DEBUG   ( 3470):          bf808e08  00000016
I/DEBUG   ( 3470):          bf808e0c  b6059b79  /system/lib/libdvm.so (dvmChangeStatus(Thread*, ThreadStatus)+25)
I/DEBUG   ( 3470):          bf808e10  b79b6bd0  [heap]
I/DEBUG   ( 3470):          bf808e14  0000003c
I/DEBUG   ( 3470):          bf808e18  bf808e00  [stack]
I/DEBUG   ( 3470):          bf808e1c  00000001
I/DEBUG   ( 3470):          bf808e20  00000000
I/DEBUG   ( 3470):          bf808e24  9ddfb748  /dev/ashmem/dalvik-LinearAlloc (deleted)
I/DEBUG   ( 3470):          bf808e28  0000000c
I/DEBUG   ( 3470):          bf808e2c  99e8a174  /system/lib/libwebcore.so
I/DEBUG   ( 3470):          ........  ........
I/DEBUG   ( 3470):
I/DEBUG   ( 3470): memory map around fault addr deadd00d:
I/DEBUG   ( 3470):     bf7ea000-bf80b000 rw- [stack]
I/DEBUG   ( 3470):     (no map for address)
I/DEBUG   ( 3470):     (no map above)
I/BootReceiver(  332): Copying /data/tombstones/tombstone_06 to DropBox (SYSTEM_TOMBSTONE)
W/ActivityManager(  332):   Force finishing activity com.mycompany.myapp/.MainActivity
W/InputDispatcher(  332): channel '529a1e7c com.mycompany.myapp/com.mycompany.myapp.MainActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
E/InputDispatcher(  332): channel '529a1e7c com.mycompany.myapp/com.mycompany.myapp.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
D/        (  332): HostConnection::get() New Host Connection established 0xb7a01f78, tid 9372
D/Zygote  (  172): Process 9296 terminated by signal (11)
D/dalvikvm(  332): GC_FOR_ALLOC freed 2427K, 56% free 11576K/25772K, paused 11ms, total 12ms
W/InputDispatcher(  332): Attempted to unregister already unregistered input channel '529a1e7c com.mycompany.myapp/com.mycompany.myapp.MainActivity (server)'
I/WindowState(  332): WIN DEATH: Window{529a1e7c u0 com.mycompany.myapp/com.mycompany.myapp.MainActivity}
W/ActivityManager(  332): Exception thrown during pause
W/ActivityManager(  332): android.os.DeadObjectException
W/ActivityManager(  332):   at android.os.BinderProxy.transact(Native Method)
W/ActivityManager(  332):   at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:635)
W/ActivityManager(  332):   at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:990)
W/ActivityManager(  332):   at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3834)
W/ActivityManager(  332):   at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3766)
W/ActivityManager(  332):   at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:8344)
W/ActivityManager(  332):   at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:8221)
W/ActivityManager(  332):   at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:8900)
W/ActivityManager(  332):   at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:8455)
W/ActivityManager(  332):   at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)
I/ActivityManager(  332): Process com.mycompany.myapp (pid 9296) has died.

我在这里读到一些内容,提到该应用程序可能做的太多了,但它在我的登录屏幕上崩溃了,几乎什么也没做...

更新:在一个一个地删除了一堆依赖之后,我已经将我的案例的罪魁祸首缩小到:https://github.com/callstack-io/react-native-fbads

DeadObjectException 表示您正在尝试与已终止的应用进行交互。在编写系统服务(如键盘)时经常会发生这种情况。这不是你真正的问题——你真正的问题是它上面的 C 堆栈跟踪。您正在尝试访问已在 Java 端释放的内存,导致出现段错误。你可以通过 0xDEADDOOD 地址来判断。