[置顶] Android Studio使用新的Gradle构建工具配置NDK环境(二)
2017-02-15 18:28
696 查看
Android studio 2.2之前gradle的支持ndk的版本主要有两个,一个是1.3实验版本的gradle-experimentall的写法,另一个是2.0之后ndk+externalNdkBuilds的写法,本篇主要介绍ndk的配置。
这样编译出来的代码有个问题,就是不能够跟踪,ctrl+左键没有作用。应该是LLDB没有作用。
gradle中加入以上代码后,代码就可以跟踪了,这部分脚本与buildTypes{}同级。这个功能在Android studio 2.2中才有,在第四篇中我们还会讲到。
另一个写法比较古老,比较复杂,有兴趣的可以自行研究。
ps:ndk其他的语法
经过测试,ndk{}里面的部分abiFilters有用,其他测试没什么效果。
以前一直找不到ABI_PLATFORM在哪里设置,今天发现ABI_PLATFORM = minSdkVersion
本篇采用了最常规的ndk的配置来编译ndk,下篇尝试用最新的cmake来编译。
http://blog.csdn.net/jasonwang18/article/details/55504906
apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.1" defaultConfig { applicationId "com.qualcomm.svrapitest" minSdkVersion 19 targetSdkVersion 22 versionCode 1 versionName "1.0.0" ndk { abiFilters "armeabi-v7a"//编译支持的平台 } } sourceSets { main { jni.srcDirs=[] jniLibs.srcDirs 'src/main/libs' //指定lib的目录,编译时链接用 } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { compile project(':lib') }
这样编译出来的代码有个问题,就是不能够跟踪,ctrl+左键没有作用。应该是LLDB没有作用。
//ndk-build,已有Android.mk externalNativeBuild { ndkBuild { path file('src/main/jni/Android.mk') } }加入以上代码后,gradle才会真正的去编译ndk部分,之后C代码就可以跟踪了,可能编译一次通过之后,LLDB就启动了。编译器会自动包含同目录下的Application.mk文件。另外如果这样写是会有问题的,代码如下,尝试了很多次,这样写一直是编译不过的。
apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.1" defaultConfig { applicationId "com.qualcomm.svrapitest" minSdkVersion 19 targetSdkVersion 22 versionCode 1 versionName "1.0.0" externalNdkBuild{ ndkBuild{ abiFilters "armeabi-v7a"//编译 支持的平台 } } } sourceSets { main { jni.srcDirs=[] jniLibs.srcDirs 'src/main/libs' //指定lib的目录,编译时链接用 } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { compile project(':lib') }
gradle中加入以上代码后,代码就可以跟踪了,这部分脚本与buildTypes{}同级。这个功能在Android studio 2.2中才有,在第四篇中我们还会讲到。
另一个写法比较古老,比较复杂,有兴趣的可以自行研究。
ps:ndk其他的语法
ndk { moduleName "mtptest" abiFilters "armeabi-v7a"//编译支持的平台 cFlags '-std=c++11 -fexceptions -fpermissive' stl 'stlport_static' }
经过测试,ndk{}里面的部分abiFilters有用,其他测试没什么效果。
以前一直找不到ABI_PLATFORM在哪里设置,今天发现ABI_PLATFORM = minSdkVersion
本篇采用了最常规的ndk的配置来编译ndk,下篇尝试用最新的cmake来编译。
http://blog.csdn.net/jasonwang18/article/details/55504906
相关文章推荐
- [置顶] Android Studio使用新的Gradle构建工具配置NDK环境(三)
- Android Studio使用新的Gradle构建工具配置NDK环境
- Android Studio使用新的Gradle构建工具配置NDK环境-experimental篇(四)
- Android Studio如何下载NDK及使用新的Gradle构建工具配置NDK环境
- Android开发——Android Studio使用新的Gradle构建工具配置NDK环境
- Android Studio使用新的Gradle构建工具配置NDK环境
- Android开发——Android Studio使用新的Gradle构建工具配置NDK环境
- Android Studio使用新的Gradle构建工具配置NDK环境
- Android Studio使用新的Gradle构建工具配置NDK环境
- Android Studio使用新的Gradle构建工具配置NDK环境(一)
- Android Studio使用新的Gradle构建工具配置NDK环境
- Android NDK开发 Android Studio使用新的Gradle构建工具配置NDK环境(一)
- 【转载】第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建
- 第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建
- Android Studio使用gradle-experimental构建NDK工程(无需Android.mk、Application.mk文件)
- Java项目开发环境构建工具 Gradle 使用笔记(简单、基本)
- 第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建
- Android NDK 教程 - NDK环境配置和 Android Studio 中的入门使用
- 【转】第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建
- 第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建