在Android应用程序上使用ProGuard并使用一些本机(JNI,C ++)代码 - 应用程序在加载过程中崩溃。消息:
* < strong> * 构建指纹: '小米/ markw / markw:6.0.1 / MMB29M / V8.2.4.0.MBEMIDL:用户/释放密钥' 修订版:'0'ABI:'arm'pid:15075,tid:15115,name:Thread-10486
com.mynamespace.myapp&lt;&lt;&lt;信号6(SIGABRT),代码-6(SI_TKILL),故障地址--------中止消息: 'art / runtime / java_vm_ext.cc:410]应用程序中的JNI检测错误: 使用已删除的全局引用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( raise + 10) #03 pc 00018c11 /system/lib/libc.so(__libc_android_abort + 34) #04 pc 000167d0 /system/lib/libc.so(abort + 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(< em> ZN3art9JavaVMExt8JniAbortEPKcS2 +1526) #08 pc 0024fc21 /system/lib/libart.so(__ZN3art9JavaVMExt9JniAbortFEPKcS2_z + 68) #09 pc 0033e107 /system/lib/libart.so(__ZNK3art6Thread13DecodeJObjectEP8_jobject + 686) #10 pc 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
任何想法,我做错了什么?
答案 0 :(得分:0)
尝试解决方案:
4. pip install MySQL-python
应该是这样的......
minifyEnabled false
第二次在您使用的库中查找缺少的排除项,您可能忘记在 buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
文件中添加
最后 read this page,它可以帮助您解决可能错过的常见排除项,以及如何找到导致问题的原因。
祝你好运!
答案 1 :(得分:0)
正确的答案是&#34;使用带有adb的logcat来捕获正常的日志&#34;。我认为这是最好的方式。
adb -e logcat&gt; output.txt的
当然这是反射api和重命名私有方法的问题。