构建类型不是jni可调试错误

时间:2015-11-05 06:19:45

标签: android android-ndk

我想用android studio调试c ++ ndk但是 当我创建“Android Native”运行配置时,我收到错误“Build type is not jni debuggable”。 我的build.gradle:

import org.apache.tools.ant.taskdefs.condition.Os
apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "org.amk.test"
        minSdkVersion 11
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"


        ndk {
            moduleName "HelloJNI"
        }
        sourceSets.main {
            jniLibs.srcDir 'src/main/libs'
            jni.srcDirs = [] //disable automatic ndk-build call
        }
        task ndkBuild(type: Exec) {
            if (Os.isFamily(Os.FAMILY_WINDOWS)) {
                commandLine 'ndk-build.cmd', '-C', 'main','NDK_DEBUG=1'
            } else {
                commandLine 'ndk-build', '-C', file('src/main/jni').absolutePath
            }
        }

        tasks.withType(JavaCompile) {
            compileTask -> compileTask.dependsOn ndkBuild
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        release {
            ndk {
                debuggable = true
            }
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:support-v4:23.0.1'
    compile 'com.android.support:palette-v7:23.0.1'
    compile 'com.android.support:cardview-v7:23.0.1'
    compile 'com.android.support:recyclerview-v7:23.0.1'
    compile 'com.jakewharton:butterknife:6.1.0'
}

我的配置:

enter image description here

我可以运行c ++ ndk,但无法调试

我能做什么?

1 个答案:

答案 0 :(得分:12)

对于初学者,我使用的是Android Studio 1.5 / gradle 2.8

我通过将build.gradle更改为

来解决此问题
 buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            ndk {
                debuggable = true
            }

        }
        debug {
            debuggable = true
            jniDebuggable = true
        }

    }

所以,基本上,我只是添加了行

ndk {
        debuggable = true
}

要发布,

debug {
         debuggable = true
         jniDebuggable = true
}

附上buildTypes

但根据您的gradle版本,此语法会有所不同。查看Herehere以获取有关其他gradle版本的帮助