004androidStudio ndk开发环境
2015-10-27 17:03
387 查看
004androidStudio ndk开发环境
android studio中有对ndk环境的设置:
在如上位置设置ndk的安装位置。
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
ndk还可以配置更多选项,如下:
当然,你也可以自定义源代码路径:
如果只有c/cpp文件,直接这样编译的话,会报错,这应该是android studio 在这种情况自动生成Android.mk 时的一个bug,见编译错误。
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
解决方法:
如果还运行不了,在当前model的build.gradle下添加
NDK错误 org.gradle.process.internal.ExecException: Process 'command with non-zero exit value 2
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
相关文章推荐
- Android 播放视频并获取指定时间的帧画面
- android内存泄漏测试
- Xutils 使用get请求时,连续请求返回数据相同问题的解决
- Android的内存优化
- Android studio 创建百度地图应用
- android netd 笔记
- 如何更新android应用的包名
- Android资源管理
- 美团Android自动化之旅—生成渠道包
- Android判断输入框的状况
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标
- Android L中水波纹点击效果的实现
- Android开发,共享数据SharedPreferences的使用,用于存储数据和状态的方法
- Android下使用Crashlytics
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- AndroidDevTools简介
- Android HandlerThread 完全解析
- [Android Pro] Android 4.3 NotificationListenerService使用详解
- Android 获取有TabActivity继承关系的子类名的方法 及 获取Activity类名的方法
- 如何让android开机后自动运行自己的程序