无法解析相应的jni函数

时间:2017-05-13 10:03:29

标签: java android c++ android-studio android-studio-2.3

我阅读了很多帖子,但还是无法解决这个问题。

我的错误行和项目结构:error and structure

我从另一个项目中获取的一些库和配置......并且不知道我哪里出错了。

如果需要,我会给你文件的源代码

tools

感谢您的帮助。

2 个答案:

答案 0 :(得分:7)

自Android Studio 2升级到3以来,我也遇到此错误。代码编译,但IDE无法识别本机功能。 (这可能是因为我创建了一个简化JNI函数名称的预处理器宏。)

我通过在我的课程声明之前添加states来抑制Java中的此错误。

答案 1 :(得分:3)

好的,所以缺少'JNI功能'并不是什么大问题。我知道它突出显示为红色,但该功能正在链接,而不是IDE可以确定的方式。

首先,这是相关的源代码:https://github.com/koreader/crengine/blob/master/android/jni/cr3engine.cpp#L770

CrEngine在运行时链接这些函数。您的IDE没有选择它的原因是因为CrEngine函数以Java_org_而不是Java_com_开头。如果您依赖引擎自动链接,这将是一个问题,但如前所述,它们在运行时与jniRegisterNativeMethods明确链接。

执行clean并在gradle.build文件中将构建工具更新为25.0.3(或更高版本)。更新SDK和NDK。然后重建。我看到的一些错误可能是由较旧的构建工具引起的。