ПРОБЛЕМА:ProGuard не работает с JNI (родной строки)
позволяет ProGuard на андроид студии вместе с JNI не удалось завершить проект из-за этой ошибки:
Примечание: были 11 обращений к класса посредством интроспекции. Вы должны рассмотреть явно держать упомянутые члены класса
ИСХОДНЫЙ КОД:
JNI код:
JNIEXPORT jstring JNICALL
Java_example_example(JNIEnv *env, jobject instance) {
return (*env)->NewStringUTF(env, "example");
}
Java код:
public native String example();
ПРОБОВАЛИ:
1) добавить по правилам Proguard:
-keep class * { // I also tried to put the class one by one instead of *
native <methods>; // or "*;" , "public native <methods>" , "public *;"
}
2) добавить по правилам Proguard (успешно строить, деятельность не запустить на устройстве):
-ignorewarn
Можете ли вы поделиться своим именем класса и идентификатором пакета java? (возможно, проблема в том, что вы не объявляете свою JNI-функцию правильным способом). –
Идентификатор пакета приложения - app.myapplication (приложение полной работы без proguard) –