【发布时间】:2018-06-22 01:50:03
【问题描述】:
我创建了一个预构建的 Native 库 libNative.so,它有一个可以从 Android 应用程序调用的 JNI 函数。
libNative.so 位于设备中的 /system/x86_64。
现在,我想从 Android 应用程序调用在我预构建的 Native 库中实现的 JNI 函数。我正在遵循以下程序。
1> 在 MainActivity 中加载 Native lib:
static { System.loadLibrary("Native"); }
2> 将本机方法声明为:
public native int Init();
3>共享库中的函数定义为:
JNIEXPORT jint Java_App_PACKAGE_NAME_MainActivity_Init(JNIEnv* env, jobject callingObject){
return 0;
}
4>我在 onCreate 中调用原生函数:
int i = Init();
现在,如果我构建并运行应用程序。我得到的错误是:
AndroidRuntime: java.lang.UnsatisfiedLinkError: No implementation found for int App_PACKAGE_NAME_MainActivity.Init() (tried Java_App_PACKAGE_NAME_MainActivity_Init and Java_App_PACKAGE_NAME_MainActivity_Init__)
请帮我解决上述错误。
为什么即使加载库成功,我也会收到链接器错误。
提前致谢 !
【问题讨论】:
标签: android java-native-interface