c++文件中jni库找不到报红

Posted BennuCTech

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++文件中jni库找不到报红相关的知识,希望对你有一定的参考价值。

本来没有问题的一个项目,有一天打开后c++文件中jni库都报红,但是并不影响运行,但是非常影响开发。

比如

#include <jni.h>

报红,提示jni.h file not found。而且cpp文件上面有一条提

“This file is not part of the project. Please include it in the appropriate build file(build.gradle,CMakeLists.txt or android.mk etc.) and sync the project.“

最后发现是cmake与gradle版本不一致,因为其他项目中升级了sdk中的cmake,同时也升级了项目中的gradle,但是在这个项目中gradle并没有升级,就导致了问题。

问题版本:

cmake:3.10.2.xxx

gradle:com.android.tools.build:gradle:3.2.0 和 gradle-4.6-all.zip

升级gradle即可,升级后是com.android.tools.build:gradle:4.0.1 和 gradle-6.1.1-all.zip

同时注意如果使用kotlin,也需要同步升级到org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.0

(原来是1.3.0,如果不升级就在apply plugin: 'kotlin-android’这里报错)

升级后sync一下,就可以看到c++文件中不再报红了,可以正常开发了。

以上是关于c++文件中jni库找不到报红的主要内容,如果未能解决你的问题,请参考以下文章

AS中ndk-build方式cpp问题集锦

使用 Qt/C++ 通过 JNI 调用 Java 代码。 FindClass 找不到类

Android的JNI调用

如何编写代码以使用 microsoft visual c++ 调用 JNI [关闭]

我的Android进阶之旅Android Studio的NDK项目可以运行,但是C++代码全部报红的错误

我的Android进阶之旅Android Studio的NDK项目可以运行,但是C++代码全部报红的错误