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,发送到手机上运行,看起来是这样的:

时间: 2024-08-02 00:37:32

Android Studio2.2 使用CMake编译 C/C++的相关文章

mysql 5.6中使用cmake编译

mysql5.6以上的版本采用的cmake编译,和之前的5.5用../configure编译有差别,对于新的编译方法,可以查看cmake的帮助参数,选择适合自己的参数 shell>cmake . -LH -- MySQL 5.6.3-m6 -- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH) CMake Error at cmake/readline.cmake:83 (MESSAGE): Curses l

图像处理-cmake编译的opencv3.0.0生成的工程无法通过编译

问题描述 cmake编译的opencv3.0.0生成的工程无法通过编译 我在windows下用cmake-gui编译opencv3.0(联合opencv contrib master), 生成的工程Opencv.sln在build的时候出现了许多下列类似的错误: 请问这是什么原因呢? 系统是windows10,vs2013 解决方案 http://www.opencv.org.cn/archiver/?tid-35547.html 解决方案二: http://www.nmtree.net/201

android studio2.0安装问题

问题描述 android studio2.0安装问题 为什么在安装的时候第一次已经指定了sdk的安装路径了,但是在安装完以后,启动以后还是会再次的指定一下sdk路径,然后重新下载了,这是为什么,以前不是这样的啊,而且如果指定成以前的路径的话,会提示只安装过时的sdk之类的,大家都没有遇到这样的问题或者能够解释这个问题的吗? 解决方案 studio 2.0 解压就可以啦 https://dl.google.com/dl/android/studio/ide-zips/2.0.0.0/android

使用 gcc 和 CMake 编译简单的 OpenCV 程序

使用 gcc 和 CMake 编译简单的 OpenCV 程序 注意 我们假设你已经成功的安装 OpenCV . 在你的项目中使用 OpenCV 的最简单方式是用 CMake. 优点是 (来自官方 Wiki): 支持 Windows 和 Linux,无需任何改动 和轻松和其他支持 CMake 的工具一起使用( 例如 Qt, ITK 和 VTK ) 如果你对 CMake 不熟悉,请参考 教程 步骤 使用 OpenCV 创建一个简单应用 DisplayImage.cpp 如下 #include <st

Android studio JNI如何混合编译C和C++啊求大神告知

问题描述 Android studio JNI如何混合编译C和C++啊求大神告知 最近小弟在学习Android studio的开发(毕设)之前完全没接触过Android这边有一个别的大神写的程序包但是小弟无法完整导入最新的Android studio,导入后只有Java和Android部分.C和C++部分都不见了.请问如何完整导入并创造完整的关联呢?

关于Android Studio2.0 集成 百度云push的问题,导入so包还能怎么导入

问题描述 关于Android Studio2.0 集成 百度云push的问题,导入so包还能怎么导入 Eclipse 可以推送 ,在AndroidStudio上集成的问题 估计是so包导入的不对 ,但是网上说的方法 新建jniLisb我试了 ,复制到libs,在android节点加gradle语句我也试了 都不行,请大神帮我看看啊 哪集成的问题 下面是部分报错 Error:warning: Ignoring InnerClasses attribute for an anonymous inne

用cmake编译opencv3.0 时候出现的问题

问题描述 用cmake编译opencv3.0 时候出现的问题 CMake Error at CMakeLists.txt:88 (project): No CMAKE_C_COMPILER could be found. 这是什么问题啊! 求大神解决 我是win764位 刚下的opencv3.0 用cmake进行configure就出错 安装的是vs2010 解决方案 Configure中的VC++配置的版本不对,不是你机器上安装的那个版本.点击界面中的Configure 按钮进去修改一下,改为

android aapt源码编译-android aapt源码如何编译

问题描述 android aapt源码如何编译 修改完aapt的源码,怎么编译啊,是单独编译,还是android源码整体编译

android studio2.0-android studio File类无法使用

问题描述 android studio File类无法使用 android studio2.0导入xstream.jar后发现无法使用File类了,是什么原因? 解决方案 Android Studio使用教程-菜单(File)Android studio 中的file explorerandroid studio的DDMS里怎么找不到file explore, 解决方案二: 看下是不是缺少jar包造成的. 解决方案三: 搜索一下,看能不能找到这个类. 如果找不到,应该是缺少jar包. 解决方案四