Ну, я пытаюсь разработать приложение для Android, и недавно я добавил библиотеку из GitHub.Когда я запускаю приложение в режиме отладки, оно работает нормально, но когда я в выпуске, приложение вылетает, и я получаю следующую ошибку:
A/zygote64: java_vm_ext.cc:504] JNI DETECTED ERROR IN APPLICATION: java_class == null
A/zygote64: java_vm_ext.cc:504] in call to GetStaticMethodID
[...]
A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 26017
И код:
JNIEXPORT void JNICALL Java_somepackage_StarterModel_Detector_initiate(JNIEnv *JNI, jclass SelfClass,
jobject Context) {
if (NULL == State) {
StateStructure *Blank = (StateStructure *) malloc(sizeof(StateStructure));
Blank->JNI = JNI;
Blank->Context = (*JNI)->NewGlobalRef(JNI, Context);
Blank->AlarmClass = (*JNI)->FindClass(JNI, "com/laifadventure/laifbusiness/StarterModel/Alarm");
Blank->AlarmClass = (*JNI)->NewGlobalRef(JNI, Blank->AlarmClass);
Blank->AlarmCall = (*JNI)->GetStaticMethodID(JNI, Blank->AlarmClass, "call",
"(Landroid/content/Context;)V");
InitiateBuffer(Blank);
InitiateSamples(Blank);
InitiateResampling(Blank);
InitiateFiltering(Blank);
InitiateDeltas(Blank);
InitiateSV(Blank);
InitiateEvents(Blank);
InitiateProtection(Blank);
InitiateSensor(Blank);
State = Blank;
}
}
Почему это происходит только в выпуске и как его можно решить?
РЕШЕНИЕ
Мне наконец удалось найти свою проблему.В своем файле gradle я включил параметр "minifyEnabled" в значение true в конфигурации выпуска.Просто отключив false для этого параметра, мое приложение стало работать как положено.