2015-11-05 6 views
8

Ich möchte C++ ndk mit Android Studio aber debuggen, wenn ich eine "Android Native" Laufkonfiguration erstellen, bekomme ich den Fehler "Build-Typ ist nicht Jni Debuggable". meine build.gradle:Build-Typ ist nicht jni debuggable Fehler

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' 
} 

meine Konfiguration:

enter image description here

i C++ NDK können laufen, aber kann nicht debuggen, die

was ich tun kann?

Antwort

12

Für den Anfang, ich bin 1.5/gradle Android Studio mit 2,8

ich dies durch eine Änderung fixiert meine build.gradle-

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

     } 
     debug { 
      debuggable = true 
      jniDebuggable = true 
     } 

    } 

, Also im Grunde habe ich nur noch die Linien

ndk { 
     debuggable = true 
} 

Freigeben und

debug { 
     debuggable = true 
     jniDebuggable = true 
} 

Zum umschließenden buildTypes

Aber diese Syntax variiert, basierend auf Ihrer gradle Version. Schauen Sie Here und here für Hilfe mit anderen Gradle-Versionen

+0

Es funktionierte für mich. Android Studio 2.0/Gradle 2.1 –

+0

'jniDebuggable' ist nicht gültig für NDK-Builds. –

Verwandte Themen