sembra che ci siano informazioni errate pubblicate qui. alcune persone segnalano come cancellare la cache del builder Android (con attività cleanBuildCache
) ma non sembrano rendersi conto che detta cache è indipendente dalla cache di build di Gradle, AFAIK.
la mia comprensione è che la cache di Android precede (e ha ispirato) quella di Gradle, ma potrei sbagliarmi. non so se il costruttore Android sarà / è stato aggiornato per utilizzare la cache di Gradle e ritirarne la propria.
EDIT: la cache del builder Android è obsoleta ed è stata eliminata. il plug-in Android Gradle ora utilizza invece la cache di build di Gradle. per controllare questa cache è ora necessario interagire con l'infrastruttura di cache generica di Gradle.
SUGGERIMENTO: cerca l'help della cache di Gradle online senza menzionare la parola chiave "android" per ottenere assistenza per la cache attualmente pertinente.
EDIT 2: a causa della domanda di tir38 in un commento qui sotto, sto testando usando un progetto Android Gradle plug-in v3.4.2. la cache gradle è abilitata da org.gradle.caching=true
in gradle.properties
. faccio un paio di volte clean build
e la seconda volta la maggior parte delle attività mostra FROM-CACHE
il loro stato, dimostrando che la cache funziona.
sorprendentemente, ho un cleanBuildCache
compito graduale e una <user-home>/.android/build-cache/3.4.2/
directory, entrambi suggerendo l'esistenza di una cache del generatore Android.
eseguo cleanBuildCache
e la 3.4.2/
directory è sparita. poi ne faccio un altro clean build
:
- non è cambiato nulla: la maggior parte delle attività viene visualizzata
FROM-CACHE
come stato e build completata a velocità abilitate per la cache.
- la
3.4.2/
directory viene ricreata.
- la
3.4.2/
directory è vuota (salva per 2 file di marker nascosti a lunghezza zero).
conclusioni:
- la memorizzazione nella cache di tutte le normali attività del builder Android è gestita da Gradle.
- l'esecuzione
cleanBuildCache
non cancella o influenza la cache di compilazione in alcun modo.
- c'è ancora una cache del generatore Android lì. questo potrebbe essere un codice rudimentale che il team di build di Android ha dimenticato di rimuovere, oppure potrebbe effettivamente memorizzare nella cache qualcosa di strano che, per qualsiasi motivo, non è stato o non può essere trasferito utilizzando la cache Gradle. (l'opzione 'impossibile' essendo altamente migliorabile, IMHO.)
successivamente, disabilito la cache Gradle rimuovendo org.gradle.caching=true
da gradle.properties
e provo un paio di clean build
:
- le build sono lente.
- tutte le attività mostrano il loro stato come eseguito e non memorizzato nella cache o aggiornato.
- la
3.4.2/
directory continua a essere vuota.
più conclusioni:
- non esiste un fallback della cache del builder Android per quando la cache Gradle non riesce a colpire.
- la cache del builder Android, almeno per le attività più comuni, è stata effettivamente eliminata, come ho detto prima.
- il relativo documento Android contiene informazioni obsolete. in particolare la cache non è abilitata per impostazione predefinita come indicato qui, e la cache Gradle deve essere abilitata manualmente.
EDIT 3: l'utente tir38 ha confermato che la cache del builder Android è obsoleta ed è stata eliminata con questa ricerca . tir38 ha anche creato questo problema . Grazie!
Compiler -> Gradle
non farloUse in-process build
. niente a che fare con la cache