Android 未找到 NDK 版本构建方法
Android NDK release Build method not found
我对原生 Android 库有点小问题。
我像这样从本机代码调用方法:
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 代码,而我的本地库无法再找到该方法?
我的问题是什么?
混淆 本身 不是问题,但 ProGuard 可以删除 "unused" 方法。您可以使用 -keep
选项或植入一个虚构的调用来防止 callStr()
的条带化
我对原生 Android 库有点小问题。 我像这样从本机代码调用方法:
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 代码,而我的本地库无法再找到该方法? 我的问题是什么?
混淆 本身 不是问题,但 ProGuard 可以删除 "unused" 方法。您可以使用 -keep
选项或植入一个虚构的调用来防止 callStr()