Android Studio2.2 使用CMake编译 C/C++

简介:
Android Studio从2.2版本开始,可以使用CMake进行C++的编译了,这很好。
之前折腾过AS,那是真的很折腾,而且有且仅有的ndk-build编译也并不是很令人愉快。
折腾了下最新支持的CMake直接编译,并没有费多大劲,并且成功了,这很令我欣慰。

我用Wizard创建了一个工程,第一步勾选上“C++ Include Support”,其他的都默认。
然后开始Build,结果显示一直都卡死在Gradle:Resolve dependencies':app:_debugCompile'。
这是为什么呢?因为它需要从Maven的仓库里面拉取东西,因为不可描述的网络问题,所以就一直卡死在这里了,解决办法很简单,那就是改用国内的Maven源,有两个选择:
阿里云:http://maven.aliyun.com/nexus/content/groups/public/
开源中国:http://maven.oschina.net/content/groups/public/
其中,阿里云是很快的,我就改用了阿里云的源。 
修改build.gradle,将jcenter()或者mavenCentral()替换掉即可 
allprojects {
    repositories {
        maven{ url  ' http://maven.aliyun.com/nexus/content/groups/public/ '}
    }
}

重新sync gradle就不再报错了,但是接着事儿又来了

意思大概是,找不到ABI mips64的gcc工具链,我找了所有的工程配置文件,都没有找到相关的配置,也就是说,不论是platform也好,abi也好,都是默认的。
它默认的platform是Android21,ABI是mips64。
我去文件夹下去看了下,Android21下面的确是没有的这个abi的。
我去查看了官方的文档( 向您的项目添加 C 和 C++ 代码 ),里面有提到如何去配置。
打开app下面的build.gradle,在android{}下面添加:
android{

        ndk {
            // Specifies the ABI configurations of your native
            // libraries Gradle should build  and package with your APK.
            abiFilters  ' x86 '' x86_64 '' armeabi '' armeabi-v7a ',
                     ' arm64-v8a '
        }

}
指定好ABI,即可。
再次编译,一切OK。
打包成APK,发送到手机上运行,看起来是这样的:
目录
相关文章
|
5月前
|
存储 测试技术 编译器
面向 C++ 的现代 CMake 教程(三)(5)
面向 C++ 的现代 CMake 教程(三)
66 1
|
4月前
|
C++
Clion CMake C/C++程序输出乱码
Clion CMake C/C++程序输出乱码
|
4月前
|
C++ 存储 索引
面向 C++ 的现代 CMake 教程(一)(5)
面向 C++ 的现代 CMake 教程(一)
70 0
|
4月前
|
缓存 存储 C++
面向 C++ 的现代 CMake 教程(一)(4)
面向 C++ 的现代 CMake 教程(一)
66 0
|
4月前
|
C++ 缓存 存储
面向 C++ 的现代 CMake 教程(一)(3)
面向 C++ 的现代 CMake 教程(一)
86 0
|
4月前
|
缓存 C++ Windows
面向 C++ 的现代 CMake 教程(一)(2)
面向 C++ 的现代 CMake 教程(一)
96 0
|
4月前
|
C++ 容器 Docker
面向 C++ 的现代 CMake 教程(一)(1)
面向 C++ 的现代 CMake 教程(一)
108 0
|
4月前
|
存储 算法 C++
面向 C++ 的现代 CMake 教程(五)(5)
面向 C++ 的现代 CMake 教程(五)
38 0
|
4月前
|
C++ 存储 JSON
面向 C++ 的现代 CMake 教程(五)(4)
面向 C++ 的现代 CMake 教程(五)
58 0
|
4月前
|
C++ 存储 测试技术
面向 C++ 的现代 CMake 教程(五)(3)
面向 C++ 的现代 CMake 教程(五)
55 0