使用IDEA开发NDK安卓应用

2016-11-24 分类 [软件技巧]

由于Android Studio本身就是基于IDEA开发的,我本以为IDEA创建、编译Android工程应该是无障碍的,但是当我创建了一个带有NDK的工程之后,发现想让它跑起来真的不容易。

首先,使用IDEA创建一个新的Android工程,选择Include C++ Support
New Project
然后Gradle就会报错:Gradle sync failed: NDK not configured.
NDK Filed
这里IDEA指示我们需要使用Android SDK Manager去下载NDK。在Google的官方教程中,使用Android Studio的SDK Manager是直接下载NDK、CMake、LLDB即可开始进行NDK开发了,但是IDEA并没有内置Android SDK Manager,而Android SDK自带的独立版的SDK Manager并不能下载NDK等Android Tools包,这个问题谷歌承诺在后续版本中解决。
目前我们只能自己下载NDK并解压缩,然后打开local.properties,可以看到里面已经有了sdk.dir,我们需要加入ndk.dir
Insert NDK Dir
这里推荐使用阿里云的Maven镜像,可以极大的提高Gradle的速度,具体做法的是替换jcenter()maven { url 'http://maven.aliyun.com/mvn/repository/' }
Use Aliyun Maven
然后点击Try Again再次执行Gradle Sync,将会停到查找CMake的错误上
CMake Not Found
在Android Studio中,CMake是可以直接通过SDK Manager下载的,但是在IDEA里就只能自己下载了。我从CMake官网获取了一份最新的CMake,放到报错提示的位置下,遇到了错误:

CMake Error: Could not create named generator Android Gradle - Ninja

通过查找资料,确定了Android使用的CMake必须是Google提供的,因此通过腾讯的Bugly镜像获取到了Android需要使用的CMake,下载地址:
http://a62f762da201.repository.bugly.qq.com/android/repository/cmake-3.6.3155560-windows-x86_64.zip
这个地址可能需要登录QQ下载,如果需要Linux/macOS版可以直接替换下图中文件名:
CMake from Bugly
将CMake解压到对应路径,再次进行Gradle Sync,可以看到编译已经成功了,可以连接手机测试一下了。
Gradle Build Successful