本文章所用的工具版本
-
Android Studio 3.6.3
-
Gradle 5.6.4
开胃菜
- 在讲 NDK 之前,简单介绍一下 NDK 是什么?先来看看官方的回答
- NDK 全称是 Native Development Kit,翻译过来是本地开发工具包,本质上和 JDK / SDK 很类似,这里不做过多的解释,接下来让我们开始搭建环境
-
环境配置其实非常简单,安装 NDK 和 CMake 相关的包就可以了
-
那么问题来了,CMake 是什么东西?我为什么要装它?不装行不行?
-
原来是一个 C 语言的编译工具,可以根据我们提供的脚本来编译 so 库,跟 Gradle 的作用很类似,只不过 CMake 是专门用来编译本地语言的。
-
如果把 NDK 比喻成一碗饭,那么 CMake 就是一双筷子,有饭和筷子才能吃饭,缺一不可。
创建一个 NDK 工程
- 接下来让我们创建一个 NDK 的 Hello Work 工程
- 这里有一个地方需要注意,包名不能带下划线
- 点击 finish 按钮,等待创建即可
> Failed to apply plugin [class 'org.gradle.api.plugins.BasePlugin']
> Could not create service of type OutputFilesRepository using ExecutionGradleServices.createOutputFilesRepository().
- 但是等来的不是惊喜,而是惊吓
- 我们手动把 NDK 目录添加到 local.properties 文件即可,然后点击同步
- 现在编译是没有问题了,接下来让我们运行一下
> Could not create service of type DefaultGeneralCompileCaches using GradleScopeCompileServices.createGeneralCompileCaches().
- 现在又出现了一个报错,这种错误我也不知道是什么错误,好像是 Studio 的一个 Bug,直接在命令中输入
./gradlew compileDebugJavaWithJavac --stacktrace
- 然后再运行项目
-
可以看到项目已经顺利跑起来了
-
这两个报错不一定是每个人都能遇到的,有可能是我的问题,大家遇到的话可以参考我的解决方法
网友评论