带有 Android 的 Proguard 给我 JNI 错误
Proguard with Android gives me JNI error
在 Android 具有一些本机(JNI、C++)代码的应用程序上使用 ProGuard 后 - 应用程序在加载过程中崩溃。留言:
* * Build fingerprint:
'Xiaomi/markw/markw:6.0.1/MMB29M/V8.2.4.0.MBEMIDL:user/release-keys'
Revision: '0' ABI: 'arm' pid: 15075, tid: 15115, name: Thread-10486
com.mynamespace.myapp <<< signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- Abort message:
'art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION:
use of deleted global reference 0xe5617166'
r0 00000000 r1 00003b0b r2 00000006 r3 de161978
r4 de161980 r5 de161930 r6 0000000b r7 0000010c
r8 ab4446c8 r9 f52d7378 sl 00000000 fp 00000000
ip 00000006 sp de1609f8 lr f7360f5d pc f7363358 cpsr 40070010
回溯:
#00 pc 00044358 /system/lib/libc.so (tgkill+12)
#01 pc 00041f59 /system/lib/libc.so (pthread_kill+32)
#02 pc 0001ba6f /system/lib/libc.so (加注+10)
#03 pc 00018c11 /system/lib/libc.so (__libc_android_abort+34)
#04 pc 000167d0 /system/lib/libc.so (中止+4)
#05 pc 00321145 /system/lib/libart.so (_ZN3art7Runtime5AbortEv+212)
#06 pc 000f3cdd /system/lib/libart.so (_ZN3art10LogMessageD2Ev+2212)
#07 pc 0024f817 /system/lib/libart.so (ZN3art9JavaVMExt8JniAbortEPKcS2+1526)
#08 pc 0024fc21 /system/lib/libart.so (_ZN3art9JavaVMExt9JniAbortFEPKcS2_z+68)
#09 pc 0033e107 /system/lib/libart.so (_ZNK3art6Thread13DecodeJObjectEP8_jobject+686)
#10 件 0031a031 /system/lib/libart.so (_ZN3art17InvokeWithVarArgsERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectP10_jmethodIDSt9__va_list+248)
#11 pc 0028e30d /system/lib/libart.so (_ZN3art3JNI10NewObjectVEP7_JNIEnvP7_jclassP10_jmethodIDSt9__va_list+1064)
#12 pc 0010724f /system/lib/libart.so (_ZN3art8CheckJNI10NewObjectVEP7_JNIEnvP7_jclassP10_jmethodIDSt9__va_list+866)
#13 pc 00093768 /data/app/com.mynamespace.myapp-1/lib/arm/librhodes.so
任何想法,我做错了什么?
正确答案是"Use logcat with adb to catch normal log"。我认为这是最好的方法。
adb -e logcat > output.txt
当然这是反射 api 和重命名私有方法的问题。
---- Abort message: 'art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: use of deleted global reference 0xe5617166'
您正在使用已删除的全局引用作为 NewObject 的参数。
在 Android 具有一些本机(JNI、C++)代码的应用程序上使用 ProGuard 后 - 应用程序在加载过程中崩溃。留言:
* * Build fingerprint: 'Xiaomi/markw/markw:6.0.1/MMB29M/V8.2.4.0.MBEMIDL:user/release-keys' Revision: '0' ABI: 'arm' pid: 15075, tid: 15115, name: Thread-10486
com.mynamespace.myapp <<< signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- Abort message: 'art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: use of deleted global reference 0xe5617166' r0 00000000 r1 00003b0b r2 00000006 r3 de161978 r4 de161980 r5 de161930 r6 0000000b r7 0000010c r8 ab4446c8 r9 f52d7378 sl 00000000 fp 00000000 ip 00000006 sp de1609f8 lr f7360f5d pc f7363358 cpsr 40070010
回溯: #00 pc 00044358 /system/lib/libc.so (tgkill+12) #01 pc 00041f59 /system/lib/libc.so (pthread_kill+32) #02 pc 0001ba6f /system/lib/libc.so (加注+10) #03 pc 00018c11 /system/lib/libc.so (__libc_android_abort+34) #04 pc 000167d0 /system/lib/libc.so (中止+4) #05 pc 00321145 /system/lib/libart.so (_ZN3art7Runtime5AbortEv+212) #06 pc 000f3cdd /system/lib/libart.so (_ZN3art10LogMessageD2Ev+2212) #07 pc 0024f817 /system/lib/libart.so (ZN3art9JavaVMExt8JniAbortEPKcS2+1526) #08 pc 0024fc21 /system/lib/libart.so (_ZN3art9JavaVMExt9JniAbortFEPKcS2_z+68) #09 pc 0033e107 /system/lib/libart.so (_ZNK3art6Thread13DecodeJObjectEP8_jobject+686) #10 件 0031a031 /system/lib/libart.so (_ZN3art17InvokeWithVarArgsERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectP10_jmethodIDSt9__va_list+248) #11 pc 0028e30d /system/lib/libart.so (_ZN3art3JNI10NewObjectVEP7_JNIEnvP7_jclassP10_jmethodIDSt9__va_list+1064) #12 pc 0010724f /system/lib/libart.so (_ZN3art8CheckJNI10NewObjectVEP7_JNIEnvP7_jclassP10_jmethodIDSt9__va_list+866) #13 pc 00093768 /data/app/com.mynamespace.myapp-1/lib/arm/librhodes.so
任何想法,我做错了什么?
正确答案是"Use logcat with adb to catch normal log"。我认为这是最好的方法。
adb -e logcat > output.txt
当然这是反射 api 和重命名私有方法的问题。
---- Abort message: 'art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: use of deleted global reference 0xe5617166'
您正在使用已删除的全局引用作为 NewObject 的参数。