android studio 项目在添加jni后,调试很慢

在项目里添加了jni后,在调试的时候,会编译很久,但是直接部署就很快在app/build.gradle添加了externalNativeBuild{ndkBuild{pa... 在项目里添加了jni后,在调试的时候,会编译很久,但是直接部署就很快
在app/build.gradle添加了
externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}

productFlavors {
}
展开
 我来答
谢秀桃9988
2017-12-25 · TA获得超过5350个赞
知道大有可为答主
回答量:1103
采纳率:95%
帮助的人:288万
展开全部

一、前提条件

1、Android studio版本最好2.0以上,在1.5上试过各种问题

2、Ndk版本最好是android-ndk-r10d,ndk的路径要在项目根目录下的local.properties下指定,例如ndk.dir=F\:\\android-ndk-r10d

二、加入gradle-experimental插件

1、打开项目根目录下的build.gradle文件,加入

classpath "com.android.tools.build:gradle-experimental:0.7.0"

如下图:

2、打开项目根目录下的gradle->wrapper->gradle-wrapper.propertites,将版本改成2.5,如下图:

经过测试gradle-experimental:0.7.0与gradle-experimental:0.6.0和gradle-2.5-all.zip都能匹配,当然其他版本可以自己测试,这里只是提供一种建议

三、修改Module下的build.gradle

1、打开对应Module下的build.gradle,改之前是下面这样的:

2、默认使用的是com.android.application这个插件,如果要进行jni调试最好换掉这个插件,也就是使用之前加入的gradle-experimental插件,据说不换好像也行,但是没试过。下面贴出具体的配置:

[java] view plain copy

  • apply plugin: 'com.android.model.application'  

  • model {  

  • android {  

  • compileSdkVersion 24  

  • buildToolsVersion "24.0.2"  

  • defaultConfig.with {  

  • minSdkVersion.apiLevel = 15  

  • targetSdkVersion.apiLevel = 24  

  • applicationId "com.exampl.myapplication"  

  • }  

  • }  

  • android.buildTypes {  

  • release {  

  • minifyEnabled = false  

  • proguardFiles.add(file('proguard-rules.pro'))  

  • }  

  • }  

  • android.ndk {  

  • moduleName = "hello-jni"  

  • ldLibs.addAll(["android", "log"])  

  • stl = "gnustl_shared"  

  • /* 

  • * Other ndk flags configurable here are 

  • * cppFlags.add("-fno-rtti") 

  • * cppFlags.add("-fno-exceptions") 

  • * ldLibs.addAll(["android", "log"]) 

  • * stl       = "system" 

  • */  

  • }  

  • android.productFlavors {  

  • create("arm") {  

  • ndk.abiFilters.add("armeabi")  

  • }  

  • create("arm7") {  

  • ndk.abiFilters.add("armeabi-v7a")  

  • }  

  • create("arm8") {  

  • ndk.abiFilters.add("arm64-v8a")  

  • }  

  • create("x86") {  

  • ndk.abiFilters.add("x86")  

  • }  

  • create("x86-64") {  

  • ndk.abiFilters.add("x86_64")  

  • }  

  • create("mips") {  

  • ndk.abiFilters.add("mips")  

  • }  

  • create("mips-64") {  

  • ndk.abiFilters.add("mips64")  

  • }  

  • // To include all cpu architectures, leaves abiFilters empty  

  • create("all")  

  • }  

  • }  

  • dependencies {  

  • compile fileTree(dir: 'libs', include: ['*.jar'])  

  • testCompile 'junit:junit:4.12'  

  • compile 'com.android.support:appcompat-v7:24.1.1'  

  • compile 'com.android.support:design:24.1.1'  

  • }  

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式