Se il tuo Capacitor Il plugin ha smesso di funzionare dopo l'aggiornamento al Plugin di costruzione Android Gradle 9 (AGP 9), è probabile che stia colpendo un piccolo ma critico problema di configurazione di Gradle.
Questo post si concentra specificamente su intenzioni di ricerca comuni come:
- Capacitor errore di costruzione del plugin AGP 9
- Errore di costruzione del plugin AGP 9
proguard-android.txtnon trovato- AGP 9
getDefaultProguardFileerrore - Capacitor costruzione Android fallita dopo l'aggiornamento di AGP
La versione breve:
proguard-android.txtnon è più il default di sicurezza di riferimento per le costruzioni del plugin AGP 9.- Passa a
proguard-android-optimize.txt. - Riavvia e verifica.
The version più lunga conta anche, soprattutto se mantieni molti plugin o grandi Capacitor ambienti di lavoro. In questo articolo copriamo:
- Cosa sono Android e AGP nella catena di costruzione
- Cosa Capacitor è e come funzionano le costruzioni dei plugin
- Cosa Capgo è e perché ciò conta per la affidabilità delle rilasci
- L'esatto cambiamento di AGP 9 che rompe le vecchie matrici dei plugin
- Una strategia di migrazione sicura per un repository o molti repository
Cosa è Android in questo contesto?
Android è sia un sistema operativo che un ecosistema di costruzione. Quando invii un'app o un plugin Capacitor su Android, il tuo progetto passa attraverso:
- Gradle As il sistema di costruzione.
- Plugin Android Gradle (AGP) As integrazione Android-specifica di Gradle.
- La catena di strumenti Android SDK per la confezione, la riduzione, la verifica di sintassi e la produzione
.aar,.apk, o.aabgli output.
Quando cambiano le versioni di AGP, alcuni valori predefiniti e file interni possono cambiare anch'essi. Una configurazione di plugin che funzionava per AGP 8 può fallire su AGP 9 se punta a una baseline rimossa o obsoleta.
Cosa è Capacitor?
Capacitor è un runtime cross-platform che ti consente di costruire app iOS/Android con code web (TypeScript, JavaScript, HTML, CSS) mentre chiami ancora API native.
Gli app Capacitor includono generalmente:
- Una layer web (la tua interfaccia utente e la logica di business)
- Shell nativi (
ios/,android/) - I plugin che espongono funzionalità native al JavaScript
Ogni plugin ha la propria configurazione di build nativa. Su Android, ciò significa che ogni plugin include un android/build.gradle file che AGP deve interpretare e compilare correttamente.
Se le impostazioni Gradle dei plugin sono obsolete, il tutto può fallire, anche quando il tuo pacchetto web code è corretto.
Cosa è Capgo?
Capgo fornisce strumenti per la consegna e le operazioni di Capacitor:
- Aggiornamenti in tempo reale per modifiche al pacchetto web bundle
- Ecosistema dei plugin e pacchetti di funzionalità native
- Flussi di lavoro di aggiornamento CI/CD amichevoli per i team di Capacitor
Anche con aggiornamenti in tempo reale, la stabilità dei costruzioni native non è negoziabile. Sono ancora necessari costruzioni Android pulite per:
- Rilasci di App Store / Play Store
- Aggiornamenti di plugin nativi
- Migrazioni della piattaforma SDK
- Assunzione di nuovo personale e affidabilità di CI
Questo è il motivo per cui sono importanti i ripari per la compatibilità con AGP 9: mantengono la layer dei plugin affidabile, quindi i pipeline di consegna rimangono predittibili.
Perché AGP 9 rompe le configurazioni dei plugin più vecchie
Molti modelli di plugin hanno utilizzato storiciamente:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
In impostazioni AGP 9, questa riferimento di base di legacy può fallire perché il vecchio file non è più garantito nella posizione attesa dai modelli/config più vecchi.
I sintomi tipici includono errori di Gradle durante assemble, lint, o build fasce, spesso che puntano a risorse di ProGuard mancanti o riferimenti di file di default invalidi.
Rapida panoramica: ProGuard, R8 e file di base
- R8 is the modern code shrinker/optimizer in Android builds.
proguard-rules.prole regole di conservazione personalizzate del progetto/plugin.getDefaultProguardFile(...)inietta un file di base fornito da Android.
Quando si fa riferimento a:
proguard-android.txt–> file di base legacy, minimoproguard-android-optimize.txt–> file di base ottimizzato moderno (raccomandato predefinito negli attuali setup)
Per la compatibilità con AGP 9, passare a proguard-android-optimize.txt è la soluzione pratica.
La soluzione di una riga
Aggiorna i file Gradle del plugin e del modulo dell'applicazione:
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
At minimum, controlla:
android/build.gradlein ogni pluginexample-app/android/app/build.gradlein repository dei plugin- Qualsiasi file generatore/template che crea una nuova configurazione Gradle per plugin
Guida di migrazione per un plugin
1. Trova la vecchia referenza
rg -n "proguard-android\\.txt" android example-app
2. Sostituiscila
perl -pi -e "s/proguard-android\\.txt/proguard-android-optimize.txt/g" \
android/build.gradle example-app/android/app/build.gradle
3. Verifica con Bun
bun run verify:android
Se il tuo plugin dispone di script di verifica completa, esegui:
bun run verify
Aggiorna in batch tutti i repository dei plugin
Se mantieni molti repository dei plugin in un unico ambiente di lavoro, automatizzalo:
rg -l "proguard-android\\.txt" capacitor-* \
--glob '!**/node_modules/**' \
--glob '!**/.gradle/**' \
--glob '!**/build/**' \
| xargs perl -pi -e "s/proguard-android\\.txt/proguard-android-optimize.txt/g"
Infine, verifica che nessuna fonte di plugin tracciata utilizza ancora il vecchio file:
for d in capacitor-*; do
[ -d "$d/.git" ] || continue
git -C "$d" grep -n "proguard-android\\.txt" -- || true
done
No significa che il riferimento di base vecchio è andato perso dai file dei plugin tracciati.
Capgo stato di avvio
Eseguiamo questa migrazione su tutti i repository e i modelli dei plugin ufficiali Capgo Capacitor:
- I moduli dei plugin Android ora fanno riferimento a
proguard-android-optimize.txt - Il plugin esempio delle app Android sono stati aggiornati pure
- I modelli di scaffolding dei plugin sono stati aggiornati per rendere i nuovi plugin sicuri per impostazione predefinita da AGP 9.
Questo prevenire una classe comune di fallimenti di aggiornamento di AGP 9 prima che colpiscano CI.
Perché è importante anche se il tuo build passa oggi
Potresti non vedere fallimenti immediatamente se:
- La cache di CI ancora maschera l'issue
- Hai versioni miste di AGP nei progetti
- Solo alcuni moduli vengono ricostruiti in dev locale
But alla fine, le costruzioni pulite, gli ambienti nuovi o gli esecutori aggiornati lo espongono. Eseguire la migrazione ora elimina l'instabilità nascosta.
Risolvere i problemi se i costruzioni falliscono ancora dopo la sostituzione
Controlla questi punti:
-
Ogni modulo è stato patchato. Guarda i moduli dei plugin, i moduli dell'applicazione, gli esempi e gli asset dei template.
-
Non ci sono riferimenti secondari nei script condivisi. Cerca tutta la repository (compresi i script Gradle personalizzati).
-
I cache sono puliti. Esegui
./gradlew cleane ricostruisci. -
I versioni di AGP / Gradle / JDK sono allineate. Usa combinazioni supportate dalla documentazione Android per la tua versione di AGP.
-
Il CI utilizza le stesse versioni locali. Fissa le versioni del JDK e del wrapper Gradle in CI per evitare la deriva dell'ambiente.
-
Non stai patchando solo
node_modules. Risolve le fonti dei plugin tracciate, non i directory delle dipendenze transitive.
FAQ SEO: gli errori di costruzione del plugin AGP 9 Capacitor
Come posso risolvere proguard-android.txt non trovato in AGP 9?
Sostituisci:
getDefaultProguardFile('proguard-android.txt')
Con:
getDefaultProguardFile('proguard-android-optimize.txt')
E quindi esegui una ricostruzione pulita.
Perché il mio plugin Capacitor si rifiuta di costruirsi dopo l'aggiornamento a Android Gradle Plugin 9?
La maggior parte delle fallite proviene da configurazioni di Gradle legacy nel plugin android/build.gradle file che ancora si riferiscono a proguard-android.txt. I progetti AGP 9 dovrebbero utilizzare proguard-android-optimize.txt.
Qual è la migrazione AGP 9 più veloce per molti plugin Capacitor?
Usa un comando di ricerca e sostituzione su tutto il workspace, poi valuta con git grep e esegui bun run verify:android On plugin rappresentativi.
È questo solo un problema di Capacitor?
No. Qualsiasi modulo Android (app o libreria) che utilizza riferimenti di baseline ProGuard obsoleti può incontrare errori di costruzione AGP 9 simili. È specialmente visibile negli ecosistemi dei plugin perché molti repository condividono vecchi template.
Quali parole chiave sono pertinenti per questa migrazione?
Se documentate questo in runbook interni o pagine di supporto, includete termini come:
- errore di costruzione AGP 9
- file ProGuard di Android Gradle Plugin 9 mancante
- plugin Capacitor Android costruzione fallita
proguard-android.txtsostituzioneproguard-android-optimize.txtmigrazione
Collegamenti correlati
- Developer Android: Panoramica dell'applicazione di costruzione
- Plugin Gradle Android: Note delle versioni
- Android code riduzione: R8 e regole
- Documentazione Gradle: Fondamenti del tool di costruzione
- Capacitor documentazione: Documentazione ufficiale
- Capgo documentazione: Documentazione dell'aggiornamento automatico
Presempio finale
Questa questione AGP 9 è semplice, ma è facile perdere di vista nei lavori di workspace multi-plugin. Una volta sostituito proguard-android.txt con proguard-android-optimize.txt tutto ciò che è rilevante, gli Android builds diventano nuovamente predittibili.
If you use Capgo plugins, this migration is already applied in official repositories so you can upgrade with fewer surprises.
plugin Capacitor
questa migrazione è già stata applicata nei repository ufficiali quindi si può aggiornare con meno sorprese. Capacitor Plugin AGP 9 Build Error Fix Plugin AGP 9 Build Error Fix __CAPGO_KEEP_0__ Capgo CI/CD Capgo Plugin AGP 9 Build Error Fix Capgo Native Builds Capgo CI/CD per il flusso di lavoro del prodotto in Capgo CI/CD, per il flusso di lavoro del prodotto in Capgo Native Builds, Integrazioni Capgo per il workflow del prodotto in Integrazioni Capgo Integrazione CI/CD per il dettaglio di implementazione in Integrazione CI/CD Integrazione GitHub Actions per il dettaglio di implementazione in Integrazione GitHub Actions.