Ошибка JNI в GetStaticMethodID (java_class == ноль) - PullRequest
0 голосов
/ 08 февраля 2019

Ну, я пытаюсь разработать приложение для 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 для этого параметра, мое приложение стало работать как положено.

...