Android ART加载dex失败

时间:2016-02-22 05:30:10

标签: android dalvik dex android-runtime

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中成功找到,但在该dex中调用方法时会出现JNI崩溃。此外,我的设备或我们的测试人员无法复制此问题,但是从崩溃自动收集器系统报告。

那么它可能是问题的真正原因,还是系统故障?

0 个答案:

没有答案