Anche se in ritardo nel rispondere, questo è difficile per Google (le virgolette singole) e non è chiaro cosa stia succedendo. Non ho ancora la reputazione di commentare o chiedere l'ambito (o pubblicare 3 link), quindi questa risposta potrebbe essere un po 'noiosa.
Per rispondere velocemente, potresti avere più plugin Gradle nel tuo progetto.
Sincronizza Gradle Wrapper e Plugin
Il mio problema sembrava iniziare con un file IML danneggiato. Android Studio (tra la chiusura e la riapertura di un progetto) ha iniziato a lamentarsi che un IML era sparito (non lo era) e un modulo doveva essere eliminato, cosa che ho rifiutato. Persisteva, ho aggiornato a AS 0.8.7 (canary channel) e sono rimasto bloccato sul problema OP (Task '' non trovato nel progetto root). Questo ha completamente bloccato le build, quindi ho dovuto scavare a Gradle.
I miei passaggi di riparazione su OSX (si prega di regolare per Windows):
- Aggiorna Android Studio a 0.8.7
- Preferenze | Aggiornamenti | Passa da "Beta Channel" a "Canary Channel", quindi fai un controllo ora.
- Potresti essere in grado di saltare questo.
Controllato il wrapper Gradle (attualmente 1.12.2; non provare a usare 2.0 in questo momento).
Supponendo che non sia necessaria una particolare versione, utilizzare l' ultima distribuzione supportata
$ vi ~/project/gradle-wrapper.properties
...
distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
Questo può essere impostato in Android Studio in Preferenze | Gradle (ma 0.8.7 mi dava errori di "posizione non valida").
- Il "wrapper" è solo una copia di Gradle per ogni progetto Android Studio. Ti consente di avere Gradle 2 nel tuo sistema operativo e diverse versioni nei tuoi progetti. I documenti per sviluppatori Android lo spiegano qui .
- Quindi modifica i tuoi file build.gradle per il plugin . La versione del plugin Gradle deve essere compatibile con la versione distribuzione / wrapper, per l'intero progetto. Poiché la documentazione degli strumenti (tools.android.com/tech-docs/new-build-system/user-guide#TOC-Requirements) è leggermente obsoleta, puoi impostare la versione del plugin troppo bassa (come la 0.8.0) e Android Studio genererà un errore con l'intervallo accettabile per il wrapper.
Esempio, in build.gradle, hai questo plugin:
dependencies {
classpath "com.android.tools.build:gradle:0.12.+"
}
Puoi provare a passare alla versione esatta, in questo modo:
dependencies {
classpath "com.android.tools.build:gradle:0.12.2"
}
e (dopo aver registrato la versione da cui stai cambiando in ogni caso) verificando che ogni file build.gradle nel tuo progetto includa la stessa versione del plugin. Mantenere il "+" dovrebbe funzionare (per 0.12.0, 0.12.1, 0.12.2, ecc.), Ma la mia build è riuscita quando ho aggiornato la libreria Volley di Google (originariamente gradle: 0.8. +) E il mio progetto principale (originariamente 0.12. +) alla versione fissa: gradle: 0.12.2.
Altri controlli
Assicurati di non avere due moduli dell'applicazione Android nello stesso progetto
Questo può interagire con la soluzione finale (diverse versioni di Gradle, sopra) e la causa
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define (various classes)
Per verificare, Build | Make Project non dovrebbe far apparire una finestra che chiede quale applicazione vuoi creare.
- Invalida le tue cache
- File | Invalidazione cache / riavvio (stackoverflow.com/a/19223269/513413)
- Se il passaggio 2 non funziona, elimina ~ / .gradle / (www.wuttech.com/index.php/tag/groovy-lang-closure/)
- Esci da Android Studio
- $ rm -rf ~ / .gradle /
- Avvia Android Studio, quindi sincronizza:
- Strumenti | Android | Sincronizza il progetto con i file Gradle
- Ripeti l'intera sequenza (esci ... sincronizza) alcune volte prima di arrenderti.
- Pulisci il progetto
Se vedi questo ...
Nelle mie build recenti, continuavo a vedere errori orribili (pagine di eccezioni) ma in pochi secondi i messaggi sarebbero stati cancellati, la compilazione riuscì e l'app distribuita. Dato che non sono mai riuscito a spiegarlo e l'app ha funzionato, non ho mai notato di avere due plugin Gradle nel mio progetto. Quindi penso che i plugin Gradle si siano combattuti a vicenda; uno si è bloccato, l'altro ha perso il suo stato e ha segnalato l'errore.
Se hai tempo, il video di 1 ora "A Gentle Introduction to Gradle" (www.youtube.com/watch?v=OFUEb7pLLXw) mi ha davvero aiutato ad avvicinarmi ai file di costruzione di Gradle, alle attività, alle decisioni di costruzione, ecc.
Disclaimer
Sto imparando l'intero stack, su un sistema operativo straniero, dopo aver lavorato in una carriera diversa ... tutto allo stesso tempo e sotto pressione. Negli ultimi mesi ho colpito ogni muro che penso abbia Android; Sono stato qui abbastanza spesso e questo è il mio primo post. Ho pensato che fosse una soluzione difficile, quindi mi scuso sinceramente se la qualità della mia risposta riflette la difficoltà che ho avuto nel raggiungerla.