Build fingerprint: GiONEE/F103/GiONEE_GBL7319:5.0/LRX21M/1433132360:user/release-keys
pid: 28431, tid: 28459 >>> com.lily.web <<<
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr d3b0f000
#00 pc 0x0 /data/data/***/jars_fusion.dex (???)
#01 pc 0xa1eb7 /system/lib/libart.so (???)
#02 pc 0xb1cc8 [heap] (???)
java.lang.Throwable:
******* Java stack for JNI crash *******
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.lily.web.DexLoader.invokeStaticMethod(SourceFile:70)
at com.lily.web.t.<init>(SourceFile:77)
at com.lily.web.d.o(SourceFile:250)
at com.lily.web.e$2.run(SourceFile:1090)
相关代码如下:
public Object invokeStaticMethod(String className, String methodName, Class<?>[] parameterTypes, Object... args)
{
try {
Method method = mClassLoader.loadClass(className).getMethod(methodName, parameterTypes);
method.setAccessible(true);
return method.**invoke**(null, args);
} catch {...}
}
另一个堆栈跟踪:
Build fingerprint: htc/htccn_chs_cu/htc_a5dug:5.0.2/LRX22G/510432.3:user/release-keys
pid: 11542, tid: 11613 >>> com.lily.web:tools <<<
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 90876000
#00 pc 0x0 /data/data/com.lily.web/jars_dex.dex (???)
#01 pc 0xa0a47 /system/lib/libart.so (???)
#02 pc 0xf4f49 /data/dalvik-cache/arm/system@framework@boot.oat (oatexec+1003337)
java.lang.Throwable:
******* Java stack for JNI crash *******
at java.lang.reflect.Method.**invoke**(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
如您所见,jars_fusion.dex 是我们应用在 Android 平台上的一个大 dex 文件。并且在调用该 dex 中的方法时出现 JNI 崩溃,尽管该方法在 dex 中已成功找到。此外,我的设备或我们的测试人员无法重现此问题,而是从崩溃自动收集器系统报告的。
那么它可能是问题的真正原因,还是只是系统故障?