我阅读了很多帖子,但还是无法解决这个问题。
我的错误行和项目结构:
我从另一个项目中获取的一些库和配置......并且不知道我哪里出错了。
如果需要,我会给你文件的源代码
感谢您的帮助。
答案 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。然后重建。我看到的一些错误可能是由较旧的构建工具引起的。