当前位置 : 主页 > 手机开发 > android >

Android NDK C JNI(找不到本机的实现…)

来源:互联网 收集:自由互联 发布时间:2021-06-11
我正在尝试使用带有C的NDK,并且似乎无法使方法命名约定正确.我的原生方法如下: extern "C" {JNIEXPORT void JNICALL Java_com_test_jnitest_SurfaceRenderer_drawFromJni(JNIEnv* env, jclass c){ //}} 标题包含在ex
我正在尝试使用带有C的NDK,并且似乎无法使方法命名约定正确.我的原生方法如下:

extern "C" {
JNIEXPORT void JNICALL Java_com_test_jnitest_SurfaceRenderer_drawFromJni
(JNIEnv* env, jclass c)
{
   //
}
}

标题包含在extern“C”{} aslo中.

一切编译都很好,创建一个.so文件并复制到我的项目下的libs文件夹,但是当我在Eclipse中调试并运行时,我不断收到“没有找到本机的实现……”的日志cat消息.因为所有NDK示例都在C中,我有什么遗漏吗?

谢谢.

有一些事情可能导致“没有找到实施”.一个是使函数原型名称错误,另一个是无法加载.so.在使用该方法之前,您确定要调用System.loadLibrary()吗?

如果您没有定义JNI_OnLoad函数,则可能需要创建一个函数并让它发出日志消息,以验证是否已成功引入了lib.

你已经躲过了最常见的问题 – 忘记使用extern“C” – 所以它要么是上面的,要么是一些轻微的拼写错误. Java声明是什么样的?

网友评论