2016-01-22 31 views
5

Sto cercando di integrare NDK nel mio progetto. Sto usando Gradle wrapper 2.9 e classpath: gradle-experimental:0.6.0-alpha3.

livello

Progetto Gradle:

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

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

App livello Gradle:

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

model { 
    android { 
     compileSdkVersion = 23 
     buildToolsVersion = "23.0.2" 

     defaultConfig.with { 
      applicationId = "com.ms.knowursensor.android" 
      minSdkVersion.apiLevel = 11 
      targetSdkVersion.apiLevel = 23 
     } 
    } 

    compileOptions.with { 
     sourceCompatibility=JavaVersion.VERSION_1_7 
     targetCompatibility=JavaVersion.VERSION_1_7 
    } 

    android.ndk { 
     moduleName = "sensorgraph" 
    } 
    android.buildTypes { 
     release { 
      minifyEnabled = false 
      proguardFiles += file('proguard-rules.txt') 
     } 
    } 
    android.productFlavors { 
     create("arm") { 
      ndk.abiFilters += "armeabi" 
     } 
     create("arm7") { 
      ndk.abiFilters += "armeabi-v7a" 
     } 
     create("arm8") { 
      ndk.abiFilters += "arm64-v8a" 
     } 
     create("x86") { 
      ndk.abiFilters += "x86" 
     } 
     create("x86-64") { 
      ndk.abiFilters += "x86_64" 
     } 
     create("mips") { 
      ndk.abiFilters += "mips" 
     } 
     create("mips-64") { 
      ndk.abiFilters += "mips64" 
     } 
     create("all") 
    } 

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

sulla costruzione di app, ricevo questo errore:

Error:Unable to load class 'com.android.build.gradle.managed.BuildType$Impl'. Possible causes for this unexpected error include:

  • Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) Re-download dependencies and sync project (requires network)
  • The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem. Stop Gradle build processes (requires restart)
  • Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.
In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

Dopo aver modificato descrizione di Proguard e sapore del prodotto sto ricevendo questo errore:

Error:A problem occurred configuring project ':app'. 
> The following model rules could not be applied due to unbound inputs and/or subjects: 
    compileOptions.with { ... } @ app\build.gradle line 15, column 5 
     subject: 
     - compileOptions.with Object [*] 
    dependencies { ... } @ app\build.gradle line 68, column 6 
     subject: 
     - dependencies Object [*] 
    [*] - indicates that a model item could not be found for the path or type. 
+0

Cambia la tua linea proguard in proguardFiles.add (file ('proguard-rules .txt')) e commenta temporaneamente tutte le righe in android.productFlavors tranne create ("all"). – Milan

+0

@Milanix L'ho provato .. Ora sto ricevendo un nuovo errore nella riga 'compileOptions.with'. Ho aggiornato la domanda –

+0

compileOptions.with {} dovrebbe essere all'interno di android {} – Milan

risposta

8

Ho avuto esattamente lo stesso problema, e la soluzione è stata messa 'dipendenze' fuori del modello {}.

+0

questo lavoro per me, –

0

Tentare di uccidere il demone e rieseguire la build

gradle --stop && gradle clean build

+0

Il suo errore di visualizzazione: 'gradle' non è riconosciuto come comando interno o esterno, programma eseguibile o file batch. –

+2

Se stai usando mac dovresti fare ./gradlew --stop && ./gradlew clean build. Stavo incontrando lo stesso problema che hai oggi, ho avuto alcuni problemi con il mio file gradle, che ho risolto ora. Sto usando 0.6.0-alpha6, anche se Android Studio si lamenta che alpha7 è disponibile mentre con mavencentral e jcenter non ha aplha7. – Milan

+0

@Milanix come hai risolto il problema? –

2

Non so se questo risolverà il tuo problema ma potrebbe aver creato delle complicazioni che hanno portato ad esso.

Prova: proguardFiles.add (file ("Proguard-rules.txt")) ndk.abiFilters.add ("armeabi")

Invece dei + = operatori. Il supporto attorno all'elenco dei metodi di aggregazione è stato molto complesso e ho trovato che il metodo .add() è quello meglio supportato.

+0

ha funzionato per me. domanda - http://stackoverflow.com/questions/36110912/unable-to-load-class-com-android-build-gradle-managed-buildtype-impl –

Problemi correlati