2015-11-05 59 views
8

我想調試與android studio的c + + ndk,但當我創建一個「Android本機」運行配置,我得到錯誤「生成類型不jni debuggable」的 。 我的build.gradle:構建類型是不是jni可調試錯誤

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,但不能調試那個

我可以做什麼?

回答

12

對於初學者來說,我使用過Android Studio 1.5/2.8的gradle

我改變我的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版本

+0

它爲我工作。 Android Studio 2.0/Gradle 2.1 –

+0

'jniDebuggable'在NDK構建的gradle-experimental中無效。 –

相關問題