今天在Android Studio中新建了一个默认的native工程,默认使用CMake来构建,理论上一行代码就不用写就可以运行一个helloworld的示例程序(Hello from C++”)。
在gradle更新的时候遇到如下错误:
从Build View中无法看到更多信息,但可以确定是在执行externalNativeBuild脚本使用CMake构建的时候出错的
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
}
}
...
直接make工程:
可以从编译日志中查询更多的堆栈信息,找不到根源错误
最后在工程目录下使用gradle命令编译:
./gradlew build
可以看到CMake构建时的错误日志,CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
从日志上来看没有安装ninja
方法1:下载打包好的可执行文件,解压得到ninja文件
方法2:
$ git clone git://github.com/ninja-build/ninja.git && cd ninja
$ git checkout release
$ python ./bootstrap.py
上述命令会在当前目录下生成一个ninja文件,然后将这个文件拷贝到/usr/local/bin目录下就完成安装了。
重新构建工程,成功!
环境参考:
MacOS Mojave 10.14.2
Android Studio 3.3.1
gradle 3.1.4
cmake version 3.13.2