我对原生Android Libary有点问题。 我从本机代码调用一个方法,如下所示:
clazz = env->FindClass("<package>/NativeInterface");;
midlog = env->GetStaticMethodID(clazz, "callStr", "(Ljava/lang/String;)V");
jstring jstr = env->NewStringUTF(s.c_str());
env->CallStaticVoidMethod(clazz, midlog, jstr);
当我在调试模式下构建我的应用程序时,我没有遇到任何问题。 但是当我在发布模式下构建时,我收到一个错误:
Throwing new exception 'no static method "L<package>/NativeInterface;.callStr(Ljava/lang/String;)V
可能是因为Android Studio正在使用java代码,而我的原生库也无法再找到这种方法吗? 我的问题在这里是什么?
答案 0 :(得分:1)
混淆本身不是问题,但ProGuard可以删除&#34;未使用的&#34;方法。您可以使用-keep
选项或进行虚构调用来阻止callStr()