Android开发——Android Studio使用新的Gradle构建工具配置NDK环境

来源:互联网 发布:genepop软件 编辑:程序博客网 时间:2024/05/21 09:13

本文主要讲述了如何如何在Android Studio使用新的Gradle构建工具配置NDK环境,现在把相关的步骤整理出来分享给Android程序员兄弟们,希望给他们在配置NDK环境时带来帮助。

从Android Studio 1.3 Beta1开始,就支持了NDK。不过使用的是一个全新的实验性的gradle构建工具。官方地址http://tools.android.com/tech-docs/new-build-system/gradle-experimental ,英文好的可以直接看原文。

在进行配置前请先将Android Studio更新至最新版本,目前最新版本是1.4 Bata4

Android Studio使用新的Gradle构建工具配置NDK环境

并且使用Android Studio内置的SDK管理器下载NDK。

Android Studio使用新的Gradle构建工具配置NDK环境

或者在项目上右键打开Project Structure,切到的SDK Location页进行安装

Android Studio使用新的Gradle构建工具配置NDK环境

注意这个NDK安装好后其目录在SDK目录下的ndk-bundle目录下,与以往的不同。

要修改的文件见下图

Android Studio使用新的Gradle构建工具配置NDK环境

首先需要将根目录下的gradle修改为实验性的gradle

classpath 'com.android.tools.build:gradle-experimental:0.2.0'

最终是这样的

Android Studio使用新的Gradle构建工具配置NDK环境

并且需要gradle 2.5的支持,将gradle/gradle-wrapper.properties中的版本修改为2.5

distributionUrl=https/://services.gradle.org/distributions/gradle-2.5-all.zip

最终是这样的

Android Studio使用新的Gradle构建工具配置NDK环境

然后修改原来的app/build.gradle,注意现在各项配置都是有等号的,并且使用的是 com.android.model.application而不再是原来的com.android.application,如果是Library,则 是com.android.model.library。然后android外围包了一层model。原来在android里面的buildTypes 移到了外面。等等,看下面内容,注意变化。

apply plugin: 'com.android.model.application'model{  android {    compileSdkVersion = 22    buildToolsVersion = "23.0.1"    defaultConfig.with {      applicationId = "com.kltz88.car.jnidemo"      minSdkVersion.apiLevel = 14      targetSdkVersion.apiLevel = 22      versionCode = 1      versionName = "1.0"    }    tasks.withType(JavaCompile) {        //指定编译JDK版本      sourceCompatibility = JavaVersion.VERSION_1_7      targetCompatibility = JavaVersion.VERSION_1_7    }  }  android.ndk {    moduleName = "test"    ldLibs +="log"    abiFilters +="armeabi"    abiFilters +="armeabi-v7a"    abiFilters +="x86"  }  android.buildTypes {    release {      minifyEnabled = false      proguardFiles += file( 'proguard-rules.pro')    }  }}dependencies {  compile fileTree(dir: 'libs', include: ['*.jar'])  compile 'com.android.support:appcompat-v7:22.2.1'}

在android.ndk中进行ndk的配置,模块名字是必须的。然后使用了log,并且支持armeabi,armeabi-v7a,x86三个平台。

然后增加jni目录,在main上右键新建jni目录

Android Studio使用新的Gradle构建工具配置NDK环境

在弹出的窗口中你可以修改jni目录,默认是在main/jni中

Android Studio使用新的Gradle构建工具配置NDK环境

新建一个Test的类,加载jni库,声明native方法

public class Test { static {        System.loadLibrary("test");    } public native void test();}

这时候你会发现test方法是红色的

Android Studio使用新的Gradle构建工具配置NDK环境

在上面按alt+enter生成c层的方法

Android Studio使用新的Gradle构建工具配置NDK环境

修改为下方的代码

#include <jni.h> #include "android/log.h" JNIEXPORT void JNICALLJava_com_kltz88_car_jnidemo_Test_test(JNIEnv *env, jobject instance) {    __android_log_write(ANDROID_LOG_ERROR,"TAG","TEST");}

如果你需要生成头文件,使用命令行即可

Android Studio使用新的Gradle构建工具配置NDK环境

之后会在jni目录生成对应的头文件

Android Studio使用新的Gradle构建工具配置NDK环境

然后在java层调用

public class MainActivity extends AppCompatActivity {  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    Test t=new Test();    t.test();  }}

便会看到日志的输出。

Android Studio使用新的Gradle构建工具配置NDK环境

注意如果没有在gradle中指定java的对应版本,运行时可能会报错

tasks.withType(JavaCompile) {            //指定编译JDK版本            sourceCompatibility = JavaVersion.VERSION_1_7            targetCompatibility = JavaVersion.VERSION_1_7        }

错误信息如下,遇到该错误加上上面的代码即可

Android Studio使用新的Gradle构建工具配置NDK环境

最后就是调试的问题了,理论上来说应该是支持调试的,但是我在windows上并没有试验成功。下面贴出步骤。

Android Studio使用新的Gradle构建工具配置NDK环境

增加native运行方法

Android Studio使用新的Gradle构建工具配置NDK环境

修改为

Android Studio使用新的Gradle构建工具配置NDK环境

然后下断点,理论上是能调试的,但是我遇到了下面的问题,导致无法继续,也查过了,查不出问题所在,就这样吧,改天在linux下试试是不是正常。

Android Studio使用新的Gradle构建工具配置NDK环境

你会发现整个流程下来,原来的Android.mk和Application.mk都不再需要了,所有配置在gradle中配置即可。

官方的github示例代码

https://github.com/googlesamples/android-ndk

我的示例代码

http://download.csdn.net/detail/sbsujjbcy/9108775

本文到此结束,需要的朋友可以参考下。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 身份证掉了单位宿舍怎么办居住证 广州租住单位宿舍怎么办居住证 公司u盾丢了怎么办 北京办了居住卡怎么办延期 商铺被陌生人注册左公司怎么办 营业执照年检登录密码忘了怎么办 欠人家钱没钱还怎么办 欠钱实在没钱还怎么办 党关系丢了10年怎么办? 离婚后生孩子怎么办出生证明 注册公司没有注册地址怎么办 银行流水不够2倍怎么办 个体户小店怎么办五险 姓和名五行相克怎么办? 三星s7刷机后计算器没有了怎么办 线雕鼻子山根鼓怎么办 在日本没有日币怎么办 明知合同回扣特别高怎么办 医院药品断货了怎么办 空腹吃菠萝胃疼怎么办 小孩黑户口怎么办上户 别人说名字起大了怎么办? 念佛号时心老是不集中怎么办 扑lv期嗓子痛头痛怎么办 公众号忘记了账号怎么办 公众号账号密码忘记了怎么办 现实生活被小人缠上怎么办 五行缺木和水怎么办 八字火旺的人怎么办 综合旺衰得分负怎么办 妈妈误打死一只黄鼠狼怎么办 油笔画在白墙上怎么办 壁纸上的水彩笔怎么办 隐形拉链头脱了怎么办 拉链的一边掉了怎么办 帝豪gs加了乙醇汽油怎么办 命理五行缺木怎么办 微信改名含有特殊符号怎么办 户口名字打错了怎么办 寻仙会心几率差怎么办 注册商标下来了没收到怎么办