2015-08-08 16 views
11

Ho cercato di configurare Android Studio per NDk seguendo l'articolo this e l'articolo this. Di seguito sono riportati i contenuti dei miei gradle-wrapper.propertiesCome configurare il progetto NDK in Android Studio 1.3

#Sat Aug 08 09:36:53 IST 2015 
distributionBase=GRADLE_USER_HOME 
distributionPath=wrapper/dists 
zipStoreBase=GRADLE_USER_HOME 
zipStorePath=wrapper/dists 
distributionUrl=https\://services.gradle.org/distributions/gradle-2.5-all.zip 

seguito è riportato il contenuto di build.gradle (progetto)

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle-experimental:0.2.0' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

ed infine il (modulo) build.gradle

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

model { 
    android { 
     compileSdkVersion = 22 
     buildToolsVersion = "23.0.0 rc3" 

     defaultConfig.with { 
      applicationId = "com.opaxlabs.nativetest" 
      minSdkVersion.apiLevel = 15 
      targetSdkVersion.apiLevel = 22 
      versionCode = 1 
      versionName = "1.0" 
     } 
     android.buildTypes { 
      release { 
       minifyEnabled = false 
       proguardFiles += file('proguard-rules.pro') 
      } 
     } 
    } 
    android.ndk{ 
     moduleName = "native" 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.2.1' 
} 

quando cerco di sincronizzare i file Gradle ottengo il seguente errore:

Error:No such property: android for class: com.android.build.gradle.managed.AndroidConfig 

i seguenti percorsi sono definiti in local.properties

ndk.dir=/opt/adt-bundle-linux-x86_64-20140702/sdk/ndk-bundle 
sdk.dir=/opt/adt-bundle-linux-x86_64-20140702/sdk 

così sembra che ho perso qualcosa solo non riesco a individuarlo. Qualsiasi aiuto sarà molto apprezzato.

risposta

21

Nella tua build.gradle (modulo), il android.buildTypes blocco ha bisogno al di fuori del blocco Android. Così dovrebbe assomigliare a questo:

model { 
    android { 
     compileSdkVersion = 22 
     buildToolsVersion = "23.0.0 rc3" 

     defaultConfig.with { 
      applicationId = "com.opaxlabs.nativetest" 
      minSdkVersion.apiLevel = 15 
      targetSdkVersion.apiLevel = 22 
      versionCode = 1 
      versionName = "1.0" 
     } 
    } 
    android.buildTypes { 
     release { 
      minifyEnabled = false 
      proguardFiles += file('proguard-rules.pro') 
     } 
    } 
    android.ndk{ 
     moduleName = "native" 
    } 
} 
+0

Aiuta molto, grazie! – Roman

+0

Per coloro che migrano da 0.2.0 a 0.4.0 NOTA: + = non funziona più in 0.4.0, vedere http://tools.android.com/tech-docs/new-build-system/gradle-experimental # TOC-0.2.x --- 0.4.0 – skyfishjy

1

Hai dichiarato il tuo percorso NDK nel file Local.property ??

Sembra che il percorso dell'ambiente ei file local.properties stanno indicando in diverse posizioni:

PATH: C:\Program Files (x86)\Android\android-ndk-r9d 

local.properties: C: \ Program Files (x86) \ Android \ android-Studio \ android-NDK -r9d

Assicurarsi che sia giusto. È possibile mantenere il PERCORSO e rilasciare le declinazioni local.properties, quindi provare questo comando tramite la console: ndk-build -? per vedere se è stato trovato in PATH

+0

Non c'è bisogno di dichiarare 'NDK path' come di Android Studio ** 1,3 **. Ora è impostato in 'Struttura del progetto> Ubicazione SDK' – Mackovich

+1

Non utilizzare mai percorsi con spazi per NDK. Android SDK può essere infelice se il suo percorso ha anche spazi. –

-2
NDK Build option 

ndk { 
    moduleName "SeePlusPlus" // Name of C++ module (i.e. libSeePlusPlus) 
    cFlags "-std=c++11 -fexceptions" // Add provisions to allow C++11 functionality 
    stl "gnustl_shared" // Which STL library to use: gnustl or stlport 
} 
+0

scusa per downvote, ma lo script gradle non rispetta la sintassi Gradle 2.5. Si prega di vedere qui perché: http://tools.android.com/tech-docs/new-build-system/gradle-experimental – Mackovich

Problemi correlati