android studio 项目在添加jni后,调试很慢
在app/build.gradle添加了
externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}
productFlavors {
} 展开
一、前提条件
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'
}