2015-11-03 5 views
6

Quando sto cercando di costruire un Progetto Biblioteche Android in Android Studio, sto ottenendo il seguente errore Gradle:Errore Gradle in Android Studio: Plugin con id 'com.android.library' non trovato

Gradle sync failed: Plugin with id 'com.android.library' not found. 

Sono abbastanza nuovo a Gradle e questo è molto confuso per me. Perché sta succedendo?

Il file build.gradle è la seguente:

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.0' 
} 
+0

inserire il file build.gradle nella cartella radice –

+0

Il file che ho incollato sopra è quello sulla cartella principale. – jackofblades

+2

È il problema. Stai usando il build.gradle sbagliato.Controlla la mia risposta qui sotto. –

risposta

12

Il problema è che si sta utilizzando il file di livello in cui non è possibile utilizzare questo tipo di plug-in.

a come si dispone di una struttura come questa:

Root/ 
+ lib 
    | build.gradle 
| build.gradle 
| settings.gradle 

In tuo livello superiore file, è possibile utilizzare:

// 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:1.3.1' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

Nel vostro lib/build.gradle è possibile utilizzare il codice pubblicato nella domanda:

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

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

Finalmente nel vostro settings.gradle

include ':lib' 

Inoltre è possibile fare riferimento this question.

+0

Grazie per l'aiuto! – jackofblades

+0

Grazie a @gabriele. A quanto ho capito, le dipendenze '{ classpath 'com.android.tools.build:gradle:1.3.1' }' dice a Gradle di estrarre la libreria di strumenti Android - che include il pacchetto com.android.library - da il repository dettagliato da 'repository { jcenter() }' – WillC

2

Supponendo di avere una struttura di progetto standard come il seguente:

yourProject/ 
+ .idea/ 
+ gradle/wrapper/ 
+ lib-module/ 
    | build.gradle 
| build.gradle 
| gradlew 
| gradlew.bat 
| settings.gradle 

La mancata sincronizzazione sembra indicare un problema con il vostro SDK/IDE config.

Iniziare aprendo la finestra di dialogo "Struttura del progetto" e assicurarsi che il valore "Posizione SDK Android:" sia impostato sul percorso corretto.

In secondo luogo, aprire il gestore SDK e assicurarsi nuovamente di disporre del set di percorsi di posizione SDK corretto.

In terzo luogo, verificare di disporre della versione corretta del pacchetto "Android SDK Build-Tools" installato. (23.0.2 in questo caso)

Infine solo per verificare che non abbiamo alcun cattivo stato io consiglio di fare un "invalidate e Restart" dal File -> "Invalidate Caches/Restart ..."

Dopo tutto ciò, mi aspetto che dovrebbe sincronizzarsi. Se non provi a eseguire ./gradlew dalla radice del tuo progetto e aggiornaci con qualsiasi nuova informazione.

+0

Ho seguito tutti i passaggi precedenti. I percorsi per il mio SDK sono corretti e l'SDK di Android Build-Tools con la versione 23.0.2 è installato. Ho eseguito anche il './Gradlew'. Non ha risolto il problema. Ho ancora lo stesso errore di sincronizzazione. – jackofblades

0
buildscript { 
repositories { 
    mavenCentral() 
} 
dependencies { 
    classpath 'com.android.tools.build:gradle:1.3.0' } 
} 

apply plugin: 'com.android.library' 

Aggiungere queste righe al file gradle della libreria.

0

Nel mio caso era dovuto a percorsi sdk/ndk errati nel file local.properties, ho spostato il progetto da un hd ad un altro e queste impostazioni erano sbagliate, correggendo i percorsi risolto il problema.