Android Studio come eseguire manualmente la sincronizzazione gradle?


135

Sto eseguendo il debug dei problemi di Gradle in Android Studio e vedo i riferimenti a "Esegui sincronizzazione dei gradi", ma non sono sicuro di come eseguire questo comando.

Come faccio a eseguire "Gradle sync" da Android Studio o Mac Terminal?

Risposte:


212

Android studio dovrebbe avere questo pulsante nella barra degli strumenti contrassegnata come "Sincronizza progetto con file di livello"

EDIT: Non so quando è stato cambiato, ma ora sembra così:

inserisci qui la descrizione dell'immagine

EDIT: Ecco come appare su 3.3.1 OPPURE andando su File -> Sincronizza progetto con i file di livello dalla barra dei menu.inserisci qui la descrizione dell'immagine


2
mancante in Adnroid Studio 3.0.1
Roman M

10
@RomanM Non manca ... Si è spostato su "File" ... Quindi, è accanto all'icona di salvataggio
W0rmH0le

49

ATTENZIONE : il --recompile-scriptscomando è stato deprecato dalla gradleversione 5.0. Per controllare la tua gradleversione, esegui gradle -v.

./gradlew --recompile-scripts

farà una sincronizzazione senza creare nulla.


In alternativa, con la riga di comando nel progetto principale

./gradlew build

Sincronizzerà e costruirà la tua app e richiederà più tempo di una semplice sincronizzazione Gradle

Per vedere tutte le attività di pendenza disponibili, utilizzare ./gradlew tasks


2
Sì, ma build fa di più, giusto? Qual'è la differenza tra sync e build?
JohnyTex,

costruire è un compito molto generico. è come usare una mazza per rompere un dado. Sui progetti Android, l'esecuzione dell'attività "build" potrebbe richiedere per sempre!
Cesare

10
Uso com.android.tools.build:gradle:3.5.1,e non ha alcuna opzione --recompile-script
geosmart

dal grado 5.0, --recompile-script è diventata un'opzione sconosciuta da riga di comando,
Francis Bacon il

28

In Android Studio 3.3 è qui:

inserisci qui la descrizione dell'immagine

Secondo la risposta https://stackoverflow.com/a/49576954/2914140 in Android Studio 3.1 è qui:

inserisci qui la descrizione dell'immagine

Questo comando viene spostato in File > Sync Project with Gradle Files.

inserisci qui la descrizione dell'immagine


5
ROFL! Ho cercato 2 giorni per questo pulsante! Grazie!
swooby

1
@swooby, sei il benvenuto. L'ho trovato anche da qualche tempo, ho persino fatto una domanda e mi hanno aiutato.
CoolMind,

Questa opzione sembra non esistere più? i.imgur.com/cNFUoxB.png (schermata appena scattata, in Android Studio 3.5.3)
Venryx

@Venryx, è strano. Ho 3.6.3 e questo menu esiste ancora ( imgur.com/a/F8FCpvk ). Ad ogni modo, è meglio usare un pulsante nella barra degli strumenti.
CoolMind

Apparentemente era un problema con alcuni file AndroidStudio / Gradle non aggiornati. Dopo averli eliminati e reimportati il ​​progetto, l'opzione è stata mostrata di nuovo.
Venryx

23

Gli amanti delle scorciatoie da tastiera possono aggiungere una scorciatoia per eseguire manualmente la sincronizzazione gradle andando su File -> Impostazioni -> Keymap -> Plugin -> Supporto Android -> Sincronizza progetto con file gradle (fai clic destro su di esso per aggiungere scorciatoie da tastiera) -> Applica - > OK e il gioco è fatto. Scorciatoia da tastiera Gradle SyncScegli un tasto comodo come scorciatoia per la sincronizzazione dei gradi che non sia in conflitto con qualsiasi altro tasto di scelta rapida, (ho scelto Maiusc + 5 come mio tasto di sincronizzazione dei gradi), quindi quando vuoi eseguire manualmente la sincronizzazione dei gradi basta premere questo tasto di scelta rapida.


2
è "Android Studio-> Preferenze" per i primi due passaggi su Mac OS X
CCJ,

1
+1 alla migliore risposta alla domanda
nAkhmedov

Migliore risposta, Non è necessario trovare l'icona di Sync Project da icone simili di Android Studio. Premi Maiusc + 5 e il gioco è fatto.
Er. Kaushik Kajavadara,

13

Presumo che si riferisca a Strumenti> Android> "Sincronizza progetto con file di livello" dal menu principale di Android Studio.




1

Penso che ./gradlew taskssia lo stesso con Android studio sync. Perché? Lo spiegherò.

Incontro un problema quando collaudo il rapporto di copertura Jacoco. Quando corro ./gradlew clean :Test:testDebugUnitTestdirettamente nella riga di comando, appare un errore.

Error opening zip file or JAR manifest missing : build/tmp/expandedArchives/org.jacoco.agent-0.8.2.jar_5bdiis3s7lm1rcnv0gawjjfxc/jacocoagent.jar

Tuttavia, se faccio clic prima su Android Studio Sync, funziona OK. Perché l' build/../jacocoagent.jaraspetto appare naturale. Non so perché, forse c'è un bug nel plugin jacoco. L'unità che trovo in esecuzione .gradlew tasksfa apparire anche il barattolo. Quindi posso ottenere lo stesso risultato nello script gralde.

Inoltre, gradle --recompile-scriptsnon funziona per il problema.


Ciao Victor, ho un problema che potrebbe farti sbagliare, ecco cosa ho ottenuto, ho impostato un configProductID = 11111 dal mio gradle.properties, dal mio build.gradle, aggiungo "resValue" string ". Se eseguo una build pulita da ADT, può essere generata la risorsa R.string.ProductID. Quindi posso fare gradlew assembleDebug per costruire. Quindi cambio il mio nome di configurazione da "ProductID" a "myProductID", avrò un errore per fare 'gradlew task', anche Non riesco a fare "gradlew clean", tutti falliscono. Sto ancora lottando. Dato che ". \ Gradlew.bat --recompile-script" sembra non esistere più?
yunfei,

0

Ho un problema con la prova che Gradlew Clean non è uguale a ADT Build Clean. E ora sto lottando per farlo riparare.

Ecco cosa ho ottenuto: ho impostato un configProductID = 11111 dal mio gradle.properties, dal mio build.gradle, aggiungo

resValue "string", "ProductID", configProductID

Se eseguo una compilazione pulita da ADT, è possibile generare la risorsa R.string.ProductID. Quindi posso eseguire correttamente il comando muggito.

gradlew assembleDebug

Ma, mentre sto cercando di configurare il server di compilazione, non desidero l'aiuto di ADT IDE, quindi devo evitare di utilizzare ADT build clean. Ecco che arriva il mio problema. Ora cambio il nome della mia risorsa da "ProductID" a "myProductID", faccio:

gradlew clean

Ottengo l'errore

PS D:\work\wctposdemo> .\gradlew.bat clean

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\work\wctposdemo\app\build.gradle'

* What went wrong:
Could not compile build file 'D:\work\wctposdemo\app\build.gradle'.
> startup failed:
  General error during semantic analysis: Unsupported class file major version 57

Se provo con:

.\gradlew.bat --recompile-scripts

Ho appena ricevuto l'errore di

Unknown command-line option '--recompile-scripts'.

Ho lo stesso messaggio di errore alcuni minuti fa:> File di classe non supportato versione principale 57 Il problema per me era che quel gradle non funziona con l'attuale openJdk13 su Linux (io uso Manjaro ... un Arch-Like Linux). Quindi, per risolvere questo problema, ho fatto questo: ho verificato quale versione Java ho installato sul mio pc e ho scelto la versione 8: sudo archlinux-java stauts sudo archlinux-java set java-8-openjdk Forse questo aiuta sei fuori, anche se il tuo sistema sembra essere Windows. Quindi prova un'altra versione dell'SDK. Forse risolve anche il tuo problema.
Suther

Ciao @suther, molte grazie per la tua risposta, ho trovato la causa principale e risolto, non penso che sia a causa della versione JAVA. Ma come ho descritto "gradlew clean" non è uguale a "ADT clean". La mia correzione era semplicemente "gradlew: app: dipendenze", questo genererà gli ID delle risorse dai file di configurazione del gradle.
yunfei,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.