本来没有问题的一个项目,有一天打开后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++文件中不再报红了,可以正常开发了。