004androidStudio ndk开发环境
004androidStudio ndk开发环境
android studio中编译C/C++源代码
1. 配置ndk.dir
在 local.properties 添加如下配置:
sdk.dir=path_of_android-sdk
ndk.dir=path_of_android-ndk
android studio中有对ndk环境的设置:
【File】->[Project Struct]->Android NDK Location
在如上位置设置ndk的安装位置。
2.Gradle配置NDK模块
参考如下:
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.frank.smart.smarthome"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
ndk {
moduleName "SmartSocket"
ldLibs "log", "z", "m"
abiFilters "armeabi", "armeabi-v7a", "x86"
}
}
ndk还可以配置更多选项,如下:
ndk {
moduleName "myEpicGameCode"
cFlags "-DANDROID_NDK -D_DEBUG DNULL=0" // Define some macros
ldLibs "EGL", "GLESv3", "dl", "log" // Link with these libraries!
stl "stlport_shared" // Use shared stlport library
}
3.添加C/C++源代码
默认情况下,你需要把C/C++源代码放在 [module]/src/main/jni/ 路径下。效果如下图所示:
当然,你也可以自定义源代码路径:
android {
// .. android settings ..
sourceSets.main {
jni.srcDirs 'src/main/source'
}
}
4.分平台配置编译(可选)
这一步不是必须的,你可以根据需要,对各个平台进行不同的编译配置,可以设置覆盖前面的编译选项(例如 cFlags )。例如你只想编译指定平台的.so,而不是所有的平台。如下:
android {
// .. android settings ..
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
arm {
ndk {
abiFilter "armeabi-v7a"
}
}
mips {
ndk {
abiFilter "mips"
}
}
}
} // android
5. 一个编译错误的解决
android studio 根据Gradle配置自动生成Android.mk 位于app\build\intermediates\ndk\debug下
如果只有c/cpp文件,直接这样编译的话,会报错,这应该是android studio 在这种情况自动生成Android.mk 时的一个bug,见编译错误。
Error:Execution failed for task ':nativeactivity:compileDebugNdk'.
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\android-ndk-r10\ndk-build.cmd'' finished with non-zero exit value 2
解决方法:
在jni文件下建一个空的empty.c文件 编译运行即可
如果还运行不了,在当前model的build.gradle下添加
android{
…………
sourceSets.main {
jni.srcDirs = []
}
}
参考链接
- Android Studio中NDK开发
- NDK错误 org.gradle.process.internal.ExecException: Process 'command with non-zero exit value 2
004androidStudio ndk开发环境的更多相关文章
- android NDK开发环境搭建
android NDK开发环境搭建 2012-05-14 00:13:58 分类: 嵌入式 基于 Android NDK 的学习之旅-----环境搭建 工欲善其事必先利其器 , 下面介绍下 Eclip ...
- Android SDK +Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建
Android SDK+Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建 这几天一直在研究 Android SDK C/C++平台的搭建,尽管以前有成功在Windows ...
- android 串口开发第一篇:搭建ndk开发环境以及第一个jni调用程序
一:ndk环境搭建 1:开发环境 我使用的是android studio 2.3.3版本,搭建ndk开发环境比较简单,打开File----Settings----Appearance&Beha ...
- Android下NDK开发环境搭建
Android下NDK开发环境搭建 1. AndroidNDK安装与配置 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP部 ...
- android Jni NDK开发环境搭建及其简单实例的编写
android Jni NDK开发环境搭建及其简单实例的编写 由于工作需要,需要采用开发想要的JNI,由于之前没有接触过安卓的开发,所以更加网上的帖子,学习了下.遇到了些问题,然后总结下学习过程中 ...
- Windows下搭建Android NDK开发环境及命令行编译
首先说明本文内的相关安装操作参考<Pro Android C++ with the NDK>一书. 安装 Windows搭建Android NDK开发环境需要安装如下部分(同时需要配置对应 ...
- Eclipse下Android的NDK开发环境配置
编辑2016年7月26日——增加了下载网址,修改了一些错误. 摸索了一周,走了很多弯路,磕磕绊绊,总算是弄好了NDK的开发环境,在这里总结一下吧. 一.Android NDK开发环境 首先下载安装JR ...
- Android JNI和NDK学习(01)--搭建NDK开发环境(转)
本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3095013.html 本文主要介绍“JNI”.“Android NDK”以及 ...
- Android Studio 2.2 NDK开发环境搭建
转载请标明出处:http://blog.csdn.net/shensky711/article/details/52763192 本文出自: [HansChen的博客] Android应用程序使用ND ...
随机推荐
- [web] Get和Post区别,EncType提交数据的格式详解
转载自:http://www.cnblogs.com/sunxucool/archive/2012/12/11/2813113.html 1. get是从服务器上获取数据,post是向服务器传送数据. ...
- 用户文件夹在Finder中消失的问题
这个问题最早有人报告说.在升级了10.9.3的机器上.用户文件夹(/Users)会在Finder中消失.可是非常多人没有这个问题.经过多人的重复查证,最后锁定在iTunes 11.2更新上.假设用户打 ...
- iOS:CocosPods的装配和配置ReactiveCocoa
关于CocosPods的安装和配置ReactiveCocoa 1. CocoaPods和ReactiveCocoa的安装 CocoaPods是iOS最常用最有名的类库管理工具 使用ReactiveCo ...
- 基于Spark Mllib,SparkSQL的电影推荐系统
本文测试的Spark版本是1.3.1 本文将在Spark集群上搭建一个简单的小型的电影推荐系统,以为之后的完整项目做铺垫和知识积累 整个系统的工作流程描述如下: 1.某电影网站拥有可观的电影资源和用户 ...
- SVN回到历史版本--转载
svn回到历史的某个版本 在代码的编写过程中,难免有些错误需要修改,或者想从以前的文件进行代码修改,这样就涉及到版本的追踪,如果你以前提交时日志写的非常清楚,那版本追踪回滚起来就事半功倍.得心应手.下 ...
- [Javascript] Use a Pure RNG with the State ADT to Select an Element from State
The resultant in a State ADT instance can be used as a means of communication between different stat ...
- spring 动态定时任务
功能介绍:商品自动上架.按修改或添加时设置的自动上架时间而启动定时任务 更改商品状态为上架. spring 中配置文件 <?xml version="1.0" encodin ...
- web报表工具FineReport经常使用函数的使用方法总结(日期和时间函数)
web报表工具FineReport经常使用函数的使用方法总结(日期和时间函数) 说明:凡函数中以日期作为參数因子的,当中日期的形式都必须是yy/mm/dd.并且必须用英文环境下双引號(" & ...
- sql笔记 获取指定数据库下的所有表
SELECT Name FROM 数据库名称..SysObjects Where XType='U' ORDER BY Name XType='U' 标识查询用户创建的表 S为系统创建的表
- 把sqlserver查询结果复制到Excel出现数据记录遗漏
问题:今天在sqlserver查询,总共有10000记录,把结果复制到Excel,发现少掉352条,用导出csv也是如此. 原因:经排查发现缺少的记录是因为商品名称字段包含英文双引号". 解 ...