2014-04-10 14 views
7

Ho due moduli in Android Studio.Android Studio/gradle: "Impossibile creare il plug-in di tipo 'LibraryPlugin'"

Principale è l'applicazione e Sub è un modulo libreria. Sub si riferisce a Main con compile project(':Sub') nello script gradle. Funziona quando viene eseguito da Android Studio. Ma quando viene eseguito da linea di comando, gradlew dice:

Could not create plugin of type 'LibraryPlugin'. 
Caused by: java.lang.NoClassDefFoundError: org/gradle/api/artifacts/result/ResolvedComponentResult 

Questa è la parte importante nel file build.gradle Main:

apply plugin: 'android' 

buildscript { 
    repositories { 
     mavenCentral() 
     maven { 
      url 'https://oss.sonatype.org/content/repositories/snapshots/' 
     } 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.9.+' 
    } 
} 

repositories { 
    mavenCentral() 
    maven { 
     url 'https://oss.sonatype.org/content/repositories/snapshots/' 
    } 
} 

task wrapper(type: org.gradle.api.tasks.wrapper.Wrapper) { 
    gradleVersion = '1.11' 
} 

android { 
    buildToolsVersion '19.0.3' 
} 


dependencies { 
    compile 'com.android.support:support-v4:13.0.+' 
    compile project (':Sub') 
} 

Il file Gradle sub è più o meno identico, ma ha

apply plugin: 'android-library' 

invece di 'android'

ho provato con Gradle 1,9 e 1,10, ma lo stesso risultato.

Qualcuno sa come risolvere questo?

+0

Questo tende ad accadere a causa di una mancata corrispondenza tra la versione di Gradle e la versione del plug-in Android Gradle. Se stai usando il 0.9 del plugin, dovresti usare 1.10 o 1.11 di Gradle. Stai usando il wrapper quando costruisci dalla riga di comando? Hai più moduli; uno dei moduli forse specifica una versione diversa del plugin? –

risposta

4

Verificare che le vostre dipendenze contengano classpath 'com.android.tools.build:gradle:0.9.+' in ogni file gradle.build (o semplicemente inseritelo nella base e non dichiararlo negli altri). Aggiornare gradle/wrapper/gradle-wrapper.properties per puntare a Gradle 1.11:

distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip 

Se avete altre istanze del Gradle-wrapper (ad esempio se si originariamente il progetto di libreria in proprio e in seguito aggiunto un esempio app), verificare che tutte le istanze vengono aggiornate per fare riferimento alla stessa versione (ogni file gradle-wrapper.properties).

+0

molto rumore signore. –

Problemi correlati