Wenn Ihr Capacitor-Plugin nach der Aktualisierung auf Android Gradle Plugin 9 (AGP 9) begann, fehlschlug, sind Sie wahrscheinlich einem kleinen aber kritischen Gradle-Konfigurationsproblem begegnet.
Dieser Beitrag richtet sich speziell auf häufige Suchabsichten wie:
- Capacitor-Plugin-Build-Fehler mit AGP 9
- Android Gradle Plugin 9 Plugin-Build fehlgeschlagen
proguard-android.txtnicht gefunden- AGP 9
getDefaultProguardFileFehler - Capacitor-Android-Build fehlgeschlagen nach AGP-Upgrade
Die kurze Version:
proguard-android.txtist nicht mehr der sichere Standard-Baseline, auf den sich in AGP 9-Plugin-Builds Bezug genommen werden kann.- Switch zu
proguard-android-optimize.txt. - Wiederherstellen und überprüfen.
Die längere Version ist auch wichtig, insbesondere wenn Sie viele Plugins oder große Capacitor-Arbeitsbereiche verwalten. In diesem Artikel behandeln wir:
- What Android und AGP sind im Build-Prozess
- Was Capacitor ist und wie Plugin-Builds funktionieren
- Was Capgo is and why this matters for release reliability
- ist und warum dies für die Veröffentlichungsverlässlichkeit wichtig ist
- Die genaue AGP 9-Änderung, die alte Plugin-Vorlagen bricht
Ein sicheres Migrationsszenario für einen Repository oder viele Repositories
Android Es ist sowohl ein Betriebssystem als auch ein Build-Ökosystem. Wenn Sie ein Capacitor-App oder -Plugin auf Android verteilen, durchläuft Ihr Projekt:
- Gradle Gradle als Build-System.
- Android Gradle Plugin (AGP) als Android-spezifische Gradle-Integration.
- The Android SDK toolchain for packaging, shrinking, linting, and producing
.aar,.apk, oder.aabAusgaben.
Wenn sich die AGP-Version ändert, können sich auch einige Standards und interne Dateien ändern. Eine Plugin-Konfiguration, die für AGP 8 funktioniert hat, kann bei AGP 9 fehlschlagen, wenn sie auf eine entfernte oder veraltete Basis verweist.
Was ist Capacitor?
Capacitor Es ist ein plattformübergreifender Laufzeitumgebung, die Ihnen ermöglicht, iOS/Android-Anwendungen mit Web-code (TypeScript, JavaScript, HTML, CSS) zu erstellen, während Sie native APIs aufrufen können.
Capacitor Apps beinhalten normalerweise:
- A web layer (your UI and business logic)
- __CAPGO_KEEP_0__-Anwendungen umfassen normalerweise:
ios/,android/) - Plugins, die native Funktionen für JavaScript bereitstellen
Jeder Plugin hat seine eigene native Build-Konfiguration. Auf Android bedeutet dies, dass jedes Plugin einen android/build.gradle Datei enthält, die AGP korrekt parsen und kompilieren muss.
Wenn die Plugin-Gradle-Einstellungen veraltet sind, kann die gesamte App-Build fehlschlagen, auch wenn Ihr Web code korrekt ist.
Was ist Capgo?
Capgo bietet Werkzeuge rund um Capacitor-Lieferung und -Betrieb:
- Live Updates für Web-Bundle-Änderungen
- Plugin-Ökosystem und native Feature-Pakete
- Update-Workflows für CI/CD-freundliche Capacitor-Teams
Even mit Live-Updates ist die Stabilität von native Build-Prozessen unverhandelbar. Sie benötigen immer noch saubere Android-Builds für:
- App Store / Play Store Releases
- Native Plugin Upgrades
- Plattform SDK Migrationen
- Team-Integration und CI-Zuverlässigkeit
Das ist der Grund, warum die Kompatibilitätskorrekturen für AGP 9 wichtig sind: Sie halten Ihre Plugin-Schicht vertrauenswürdig, sodass die Lieferpipelines vorhersehbar bleiben.
Warum AGP 9 ältere Plugin-Konfigs bricht
Viele Plugin-Vorlagen verwendeten historisch:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
Bei AGP 9-Setup kann diese legacy-Baseline-Referenz fehlschlagen, weil das alte Datei nicht mehr garantiert ist an der von älteren Vorlagen/Konfigs erwarteten Stelle.
Typische Symptome umfassen Gradle-Fehler während assemble, lintoder build Fehlerphasen, die oft auf fehlende ProGuard-Baselines oder ungültige Standarddateireferenzen hinweisen.
Schnelle Hintergrundinformation: ProGuard, R8 und Basisdateien
- R8 ist die moderne code-Komprimierer/Optimierer in Android-Builds.
proguard-rules.prosind Ihre Projekt-/Plugin-Einstellungen für die Speicherung.getDefaultProguardFile(...)fütgt einen Android-basierten Ausgangspunkt ein.
Wenn Sie auf folgende Versionen verweisen:
proguard-android.txt-> legacy, minimalisierter Ausgangspunktproguard-android-optimize.txt-> modern optimierter Ausgangspunkt (empfohlene Standard in aktuellen Konfigurationen)
Für die Kompatibilität mit AGP 9 ist der Wechsel zu proguard-android-optimize.txt ist die praktische Lösung.
Die einezeilige Lösung
Aktualisieren Sie Plugin- und App-Modul-Gradle-Dateien:
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
Mindestens sollten Sie folgende Kontrollen durchführen:
android/build.gradleIn jeder Pluginexample-app/android/app/build.gradleIn Plugin-Repositories- Jeder Generator/Template-Datei, die neue Plugin-Gradle-Konfigurationen erstellt
Migrationshinweise für ein Plugin
1. Finden Sie die alte Referenz
rg -n "proguard-android\\.txt" android example-app
2. Ersetzen Sie sie
perl -pi -e "s/proguard-android\\.txt/proguard-android-optimize.txt/g" \
android/build.gradle example-app/android/app/build.gradle
3. Überprüfen Sie mit Bun
bun run verify:android
If your plugin has full verification scripts, run:
bun run verify
Alle Plugin-Repositories aktualisieren
Wenn Sie viele Plugin-Repositorys in einem Workspace verwalten, automatisieren Sie es:
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"
Validieren Sie dann, dass keine verfolgten Plugin-Quellen die alte Datei verwenden:
for d in capacitor-*; do
[ -d "$d/.git" ] || continue
git -C "$d" grep -n "proguard-android\\.txt" -- || true
done
Keine Übereinstimmungen bedeuten, dass die alte Basisreferenz aus den verfolgten Plugin-Dateien verschwunden ist.
Capgo Status der Ausrollung
Wir haben diese Migration in allen offiziellen Capgo Capacitor-Plugin-Repositorys und -Vorlagen durchgeführt:
- Plugin-Android-Module verweisen nun auf
proguard-android-optimize.txt - Plugin-Beispiel-Android-Anwendungen wurden ebenfalls aktualisiert
- Plugin-Scaffolding-Vorlagen wurden aktualisiert, so dass neue Plugins standardmäßig AGP 9-sicher sind
Dies verhindert eine häufige Klasse von AGP 9-Aufwertungsfehlern, bevor sie CI treffen.
Warum dies wichtig ist, auch wenn Ihre heutige Build erfolgreich ist
Sie sehen möglicherweise keine Fehler sofort, wenn:
- Ihr CI-Cache noch die Probleme versteckt
- Sie gemischte AGP-Versionen in Projekten haben
- Only some modules are rebuilt in local dev
Aber letztendlich werden saubere Builds, neue Umgebungen oder aktualisierte Runner das Problem offenlegen. Die Durchführung der Migration jetzt entfernt versteckte Instabilität.
Schadensbegrenzung bei Buildfehlern nach der Ersetzung
Überprüfe diese Punkte:
-
Jedes Modul ist gepatcht.\nBetrachten Sie die Plugin-Module, die App-Module, die Beispiele und die Vorlagen-Assets.
-
Es gibt keine zweite Referenz in gemeinsamen Skripten. Suche in der gesamten Repository (einschließlich benutzerdefinierten Gradle-Skripten).
-
Die Caches sind sauber. Führe aus
./gradlew cleanund rebuild. -
Die AGP/Gradle/JDK-Versionen sind synchronisiert. Verwende kombinierungen, die von der Android-Dokumentation für Ihre AGP-Version unterstützt werden.
-
Die CI verwendet die gleichen Versionen wie lokale. Pine JDK- und Gradle-Wrapper-Versionen in der CI, um Umgebungsdrift zu vermeiden.
-
Du patchst nicht nur
node_modules. Fixiere das gesperrte Plugin-Quellcode, nicht die transienten Abhängigkeitsverzeichnisse.
SEO FAQ: AGP 9 Capacitor Pluginbuildfehler
Wie behebe ich proguard-android.txt nicht gefunden in AGP 9?
Ersetzen:
getDefaultProguardFile('proguard-android.txt')
Mit:
getDefaultProguardFile('proguard-android-optimize.txt')
Dann führen Sie einen sauberen Neubau durch.
Warum funktioniert mein Capacitor-Plugin nicht, nachdem ich auf Android Gradle Plugin 9 aktualisiert habe?
Die meisten Fehler stammen aus der veralteten Gradle-Konfiguration im Plugin. android/build.gradle Dateien, die auf alte Versionen verweisen proguard-android.txtAGP 9-Projekte sollten proguard-android-optimize.txt.
Was ist der schnellste Weg zur Migration von vielen Capacitor-Plugins auf AGP 9?
Verwenden Sie einen workspace-weiten Such-und-Ersetzungs-Befehl, dann überprüfen Sie mit git grep und führen Sie bun run verify:android auf repräsentativen Plugins durch.
Gilt dies nur einem Capacitor-Problem?
Nein. Jedes Android-Modul (Anwendung oder Bibliothek), das veraltete ProGuard-Basiseinträge verwendet, kann ähnliche Fehler bei der AGP-9-Kompilierung erleben. Dies ist insbesondere in Plugin-Ökosystemen sichtbar, da viele Repositories alte Templates verwenden.
Welche Schlüsselwörter sind für diese Migration relevant?
Wenn Sie dies in internen Runbooks oder Unterstützungsseiten dokumentieren, sollten Sie Begriffe wie:
- AGP-9-Kompilierungsfehler
- Android-Gradle-Plugin 9 ProGuard-Datei fehlt
- Capacitor-Plugin-Android-Kompilierung fehlgeschlagen
proguard-android.txtErsatzproguard-android-optimize.txtMigration
Zugehörige Links
- Android-Entwickler: Erstellen Sie eine Übersicht über Ihre App
- Android Gradle Plugin: Veröffentlichungsnotizen
- Android code-Komprimierung: R8 und Regeln
- Gradle-Dokumentation: Grundlagen der Build-Tools
- Capacitor-Dokumentation: Offizielle Dokumentation
- Capgo docs: Auto-Update-Dokumentation
Zusammenfassung
Diese AGP 9-Problematik ist einfach, aber es ist leicht, sie in Mehr-Plugin-Umgebungen zu übersehen. Sobald Sie proguard-android.txt mit proguard-android-optimize.txt überall relevant, Android Builds werden wieder vorhersehbar.
Wenn Sie Capgo-Plugins verwenden, ist diese Migration bereits in offiziellen Repositories angewendet, sodass Sie mit weniger Überraschungen aufsteigen können.
Fortsetzen von Capacitor Plugin AGP 9 Build Error Fix
Wenn Sie diese Funktion verwenden Capacitor Plugin Fehler bei der AGP 9-Build-Fixierung zur Planung der CI/CD-Automatisierung, mit ihr verbinden Capgo CI/CD für den Produktworkflow in Capgo CI/CD, Capgo Native Builds für den Produktworkflow in Capgo Native Builds, Capgo Integrations für den Produktworkflow in Capgo Integrations, CI/CD-Integration für die Implementierungsdetails in CI/CD-Integration, und GitHub Aktionen-Integration für die Implementierungsdetails in GitHub Aktionen-Integration.