未知未知的本机崩溃

时间:2014-03-24 13:16:39

标签: android crash-dumps

我有一个完全用Java编写的应用程序 - 没有任何本机代码 - 我曾两次在开发者控制台上发布崩溃报告“未知未知的本机崩溃”。我不知道从哪里开始找到问题的根源。在Android漏洞,NDK使用或有缺陷的第三方库的情况下,搜索只揭示了这种类型的崩溃。

对于它的价值,这是其中一个日志:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/m0xx/m0:4.3/JSS15J/I9300XXUGMJ9:user/release-keys'
Revision: '12'
pid: 2197, tid: 2197, name: .test.app >>> com.test.app <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
r0 fffffffc r1 bef3f3f8 r2 00000010 r3 ffffffff
r4 41619610 r5 00000000 r6 41619624 r7 000000fc
r8 41619658 r9 00000014 sl 418cc238 fp bef3f56c
ip bef3f3f8 sp bef3f3d8 lr 40115045 pc 401a1574 cpsr 280b0010
d0 0000000100110102 d1 0000000044a01000
d2 0000000000000000 d3 0000000000000000
d4 000002d044340000 d5 0000000042a40000
d6 0000000000000000 d7 000000003f800000
d8 0000000000000030 d9 4301000000000000
d10 0000000042400000 d11 0000000000000000
d12 0000000000000000 d13 0000000000000000
d14 0000000000000000 d15 0000000000000000
d16 00002bdd67c11c72 d17 0000000000000000
d18 0000000000000000 d19 2200220022002200
d20 0000000000000003 d21 0000000000000003
d22 0000000000000002 d23 0000000000000003
d24 2222222222222224 d25 2222222222222224
d26 2222222222222223 d27 ffffffffffffffff
d28 01000100010000fd d29 0100010001000100
d30 0100010001000100 d31 0100010001000100
scr 60000010

backtrace:
#00 pc 0001c574 /system/lib/libc.so (epoll_wait+12)
#01 pc 00015041 /system/lib/libutils.so (android::Looper::pollInner(int)+92)
#02 pc 00015261 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92)
#03 pc 0006bd21 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22)
#04 pc 0001eb0c /system/lib/libdvm.so (dvmPlatformInvoke+112)
#05 pc 0004f457 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
#06 pc 00027fa0 /system/lib/libdvm.so
#07 pc 0002c9d0 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#08 pc 0006176b /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+350)
#09 pc 0006944b /system/lib/libdvm.so
#10 pc 00027fa0 /system/lib/libdvm.so
#11 pc 0002c9d0 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#12 pc 000614ad /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+292)
#13 pc 0004b03b /system/lib/libdvm.so
#14 pc 0004f5e7 /system/lib/libandroid_runtime.so
#15 pc 00050277 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+378)
#16 pc 0000105b /system/bin/app_process
#17 pc 0000dd03 /system/lib/libc.so (__libc_init+50)
#18 pc 00000d7c /system/bin/app_process

code around pc:
401a1554 e1a0700c e3700a01 912fff1e e2600000 
401a1564 ea007f30 e1a0c007 e3a070fc ef000000 
401a1574 e1a0700c e3700a01 912fff1e e2600000 
401a1584 ea007f28 e1a0c007 e3a07f4f ef000000 
401a1594 e1a0700c e3700a01 912fff1e e2600000 
401a15a4 ea007f20 e1a0c007 e59f7014 ef000000 
401a15b4 e1a0700c e3700a01 912fff1e e2600000 
401a15c4 ea007f18 0000013d e1a0c007 e59f7014 
401a15d4 ef000000 e1a0700c e3700a01 912fff1e 
401a15e4 e2600000 ea007f0f 0000013e e1a0c007 
401a15f4 e3a070a8 ef000000 e1a0700c e3700a01 
401a1604 912fff1e e2600000 ea007f06 e1a0c007 
401a1614 e3a07f59 ef000000 e1a0700c e3700a01 
401a1624 912fff1e e2600000 ea007efe e1a0c007 
401a1634 e59f7014 ef000000 e1a0700c e3700a01 
401a1644 912fff1e e2600000 ea007ef6 000f0005 

code around lr:
40115024 0848f104 46402500 f7fdaf08 2210fd8e 
40115034 46394633 6b2065e5 0614f104 eeaaf7f7 
40115044 46304681 feb6f7f8 da1245a9 ece6f7f7 
40115054 2f046807 f04fd102 e05637ff f06f4962 
40115064 4a620703 20056803 447a4479 ec52f7f7 
40115074 d048e04b a178f8df b178f8df 44fa4b5e 
40115084 447b44fb 01289305 583b1839 68e0688a 
40115094 d10c4282 d50307d9 f7ff4620 e02efdf1 
401150a4 20054a56 447a4659 ec34f7f7 4611e027 
401150b4 0034f104 92049303 ff0df7ff 99042800 
401150c4 db169b03 0101f003 bf48075a 0102f041 
401150d4 bf48071a 0104f041 6ba306db f041bf48 
401150e4 22140108 3300fb02 1d1a4620 ff5bf7ff 
401150f4 9100e005 99052005 f7f74652 3501ec0c 
40115104 dbc0454d f06fe7a7 f04f0702 f06f32ff 
40115114 e9c44300 f1042318 e02f0918 f7fc2001 

对我的后续步骤有何建议?我有自己的日志文件,但它没有足够的粒度来跟踪它。

2 个答案:

答案 0 :(得分:6)

  

在Android漏洞,NDK使用或有缺陷的第三方库的情况下,搜索仅显示此类崩溃

第四种情况是有缺陷的ROM,无论这些ROM是来自制造商的库存ROM还是ROM mod(例如,CyanogenMod)。像这样的蓝色月球崩溃最有可能来自ROM问题,否则你会更频繁地遇到它们。

  

对我的后续步骤有何建议?

对于只有几个用户,我不一定会担心。

否则,Build fingerprint会让您了解您正在使用的环境。在这种情况下,samsung/m0xx似乎是三星GT-I9300,他们的&#34; Galaxy S3&#34;变种。如果您能够获得其中一个 - 无论是通过直接购买,某些在线测试服务还是从朋友那里借用 - 您可以看到是否可以重现崩溃并缩小代码中的崩溃范围。如果你能做到这一点,也许你可以想出一些对所有设备都适用的解决方法,或者至少让你在这个问题上遇到崩溃。

答案 1 :(得分:2)

错误报告说明了一些事情

  • Build fingerprint: 'samsung/m0xx/m0:4.3/JSS15J/I9300XXUGMJ9:user/release-keys' 这是官方的三星ROM。
  • signal 6 (SIGABRT)原生图书馆中有probably an internal error
  • #00 pc 0001c574 /system/lib/libc.so (epoll_wait+12)在epoll文件上waiting for a IO poll
  • #03 pc 0006bd21 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22)最初来自Android消息队列。

底线:很难说出发生了什么。