Android Studio简单集成NDK

最近有个项目需要用到NDK,所以记录下自己集成NDK时遇到的问题和解决办法。

关于NDK和JNI的一些基础知识,可以参考这篇文章

集成时本地环境介绍:

1.jdk版本:jdk1.8.0_171;

2.Android Studio版本:Android Studio 3.1.2;

3.CMake版本:3.10.2;

4.NDK版本:19.1.5.

集成步骤:

1.安装CMake和NDK;

使用的是AS的安装工具,如图,打开Tools-->SDK Manager

然后选择Android SDK-->SDK Tools,选中下方的CMake和NDK,点击ok,直到提示安装成功

2.新建项目:

新建一个Android项目,然后在Include C++ support选项打勾,一路next就ok了。

3.把项目的Gradle插件版本修改到合适的版本,我使用的是

com.android.tools.build:gradle:3.2.1

具体位置在项目跟目录下的build.gradle文件,如下图位置:

4

4.不出意外,这个时候可以编译运行app,效果如图

可以看到图中的文字是 Helle from C++,这时候表示,你已经正确集成了NDK,如果想要再进一步修改这段文字,可以在如图的位置,修改你的文字

编译运行,效果如下

至此,一个简单的NDK集成完成。

集成过程中遇到的一些问题和报错:

Error configuring ,配置出错,如图,并且没有更多的报错信息;

这个是你使用的Gradle插件版本导致的,你可以按照AS的提示,使用最新的Gradle插件版本,比如我换成和3.3.2,然后clean项目,又报了一个新的错,Unsupported method:NativeArtifact.getSourceFolders().

根据报错信息,是使用的gradle版本不支持该方法,所以还是gradle版本的问题

为了找到一个合适的gradle版本,可以去官网看Plugin version和Required Gradle version的对应关系,然后尝试更换gradle插件版本,最终我使用3.2.1,编译通过。

在此过程中,还遇到了一些别的问题,No toolchains found in the NDK toolchains folder for ABI with prefix:mips64el-linux-android.

这是因为你使用的Gradle插件版本和你的NDK版本不匹配,最新的NDK已经把mips64el-linux-android从toolchains下删除了。所以Gradle找不到。

可能还会出现一个CMake版本找不到的问题,你需要clean你的项目,重新编译。

希望能帮到你。

猜你喜欢

转载自blog.csdn.net/Payne_xy/article/details/88539090