Wenn Ihr Capacitor Plugin
Plugin-AGP-9-Bau-Fehler-Beseitigung
- Capacitor plugin build error AGP 9
- Plugin
proguard-android.txtPlugin-Bau-Fehler-AGP-9- Plugin-Bau-Fehler-AGP-9
getDefaultProguardFilenicht gefunden - Capacitor Android build failed after AGP upgrade
Die kurze Version:
proguard-android.txtist nicht mehr der sichere Standardwert, auf den sich in AGP 9-Plugin-Builds verweisen 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:
- Was Android und AGP in der Build-Kette sind
- Was Capacitor ist und wie Plugin-Builds funktionieren
- Was Capgo ist und warum dies für die Veröffentlichungsverlässlichkeit wichtig ist
- Die genaue AGP 9-Änderung, die alte Plugin-Vorlagen bricht
- Eine sichere Migrationstrategie für einen Repository oder viele Repositories
Was ist Android in diesem Kontext?
Android ist sowohl ein Betriebssystem als auch ein Build-Ökosystem. Wenn Sie ein Capacitor-App oder -Plugin auf Android bereitstellen, durchläuft Ihr Projekt folgende Schritte:
- Gradle als Build-System.
- Android-Gradle-Plugin (AGP) als Android-spezifische Gradle-Integration.
- Das Android-SDK-Toolchain für das Paketieren, Komprimieren, Überprüfen und Erzeugen von
.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.
Capacitor
Capacitor ein plattformübergreifender Laufzeitumgebung, die Ihnen ermöglicht, iOS/Android-Anwendungen mit Web-code (TypeScript, JavaScript, HTML, CSS) zu erstellen, während Sie noch native APIs aufrufen.
Capacitor-Anwendungen umfassen normalerweise:
- Eine Web-Schicht (Ihre UI und Geschäftslogik)
- Native-Shell-Programme (
ios/,android/) - Plugins, die native Funktionen für JavaScript bereitstellen
Jeder Plugin hat seine eigene native Build-Konfiguration. Auf Android bedeutet dies, dass jeder Plugin eine Datei enthält, die AGP parsen und korrekt kompilieren muss. android/build.gradle Wenn die Gradle-Einstellungen der Plugins veraltet sind, kann die gesamte App-Build fehlschlagen, selbst wenn Ihre Web-__CAPGO_KEEP_0__ korrekt ist.
Was ist code?
Capgo
Capgo bietet Werkzeuge rund um die Capgo-Lieferung und -Betriebsweise: provides tools around Capacitor delivery and operations:
- Live Updates zum Web-Bundle-Update
- Plugin-Ökosystem und native Funktionspakete
- CI/CD-gerechte Update-Workflows für Capacitor-Teams
Selbst bei Live-Updates ist die Stabilität der nativen Builds unverhandelbar. Sie benötigen immer noch saubere Android-Builds für:
- App Store / Play Store-Veröffentlichungen
- Native-Plugin-Updates
- Plattform SDK-Migrationen
- Team-Onboarding und CI-Verlässlichkeit
Deshalb sind AGP 9-Kompatibilitätsfixes wichtig: Sie halten Ihre Plugin-Schicht vertrauenswürdig, damit die Lieferpipelines vorhersehbar bleiben.
Weshalb AGP 9 ältere Plugin-Konfigurationen bricht
Viele Plugin-Vorlagen verwendeten historisch:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
In AGP 9-Einstellungen kann diese Legacy-Baselinereferenz fehlschlagen, weil der alte Datei nicht mehr in der erwarteten Lage garantiert ist.
Typische Symptome umfassen Gradle-Fehler während assemble, lint, oder build Phasen, die oft auf fehlende ProGuard-Baselinerelemente oder ungültige Standarddateverweise hinweisen.
Rückblick: ProGuard, R8 und Baseline-Dateien
- R8 ist der moderne code-Shrinker/Optimierer in Android-Builds.
proguard-rules.probeschreibt Ihre Projekt/Plugin-Custom-Keep-Regeln.getDefaultProguardFile(...)fügt ein Android-bereitgestelltes Baseline ein.
Wenn Sie auf Folgendes verweisen:
proguard-android.txt-> Legacy-Minimal-Baselineproguard-android-optimize.txt-> Moderne optimierte Baseline (empfohlener Standard in aktuellen Einstellungen)
Für die Kompatibilität mit AGP 9, wechseln Sie zu proguard-android-optimize.txt ist die praktische Lösung.
Die einezeilige Lösung
Aktualisieren Sie die Plugin- und App-Modul-Gradle-Dateien:
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
Mindestens sollten Sie überprüfen:
android/build.gradlein jedem Pluginexample-app/android/app/build.gradlein Plugin-Repositories- Jeder Generator/Template-Datei, die neue Plugin-Gradle-Konfiguration erstellt
Migrationshinweis 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
Wenn Ihr Plugin vollständige Verifizierungs-Skripte enthält, führen Sie Folgendes aus:
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 kein verfolgtes Plugin-Quellcode noch den alten Dateityp verwendet:
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 entfernt wurde.
Capgo Rollout-Status
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 - Beispiel-Android-Anwendungen für Plugins wurden ebenfalls aktualisiert
- Plugin-Vorlagen für das Scaffolding wurden aktualisiert, so dass neue Plugins standardmäßig AGP 9-sicher sind
Dies verhindert eine häufige Klasse von AGP 9-Aufwärtsfehlern, bevor sie CI treffen.
Warum dies wichtig ist, auch wenn Ihr Build heute noch erfolgreich ist
Sie sehen möglicherweise keine Fehler sofort, wenn:
- Ihr CI-Cache verdeckt noch immer das Problem.
- Sie haben gemischte AGP-Versionen in verschiedenen Projekten.
- Nur einige Module werden in der lokalen Entwicklung neu erstellt.
Aber letztendlich werden saubere Builds, neue Umgebungen oder aktualisierte Runner das Problem offenlegen. Die Migration jetzt entfernt versteckte Instabilität.
Troubleshooting, wenn Builds nach dem Austausch weiterhin fehlschlagen:
Überprüfen Sie diese Punkte:
-
Jedes Modul ist gepatcht. Betrachten Sie Plugin-Module, App-Module, Beispiele und Vorlagen-Assets.
-
Es gibt keine zweite Referenz in gemeinsamen Skripten. Suchen Sie in der gesamten Repository (einschließlich benutzerdefinierter Gradle-Skripte).
-
Die Caches sind sauber. Führen Sie und erneuern Sie.
./gradlew cleanAGP / Gradle / JDK-Versionen sind synchronisiert. Verwenden Sie kombinierungen, die von der Android-Dokumentation für Ihre AGP-Version unterstützt werden. -
AGP / Gradle / JDK-Versionen sind synchronisiert. Verwenden Sie kombinierungen, die von der Android-Dokumentation für Ihre AGP-Version unterstützt werden.
-
CI verwendet die gleichen Versionen wie lokale. JDK- und Gradle-Wrapper-Versionen in CI festlegen, um Umgebungsdrift zu vermeiden.
-
Sie patchen nicht nur
node_modules. Fixen Sie die Quelle des verwalteten Plugins, nicht die transienten Abhängigkeitsverzeichnisse.
SEO FAQ: AGP 9 Capacitor Plugin-Baufehler
Wie kann ich __CAPGO_KEEP_0__ beheben proguard-android.txt nicht gefunden in AGP 9?
Ersetzen Sie:
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 kommen von der veralteten Gradle-Konfiguration in den Plugin-Dateien, die sich noch auf android/build.gradle files that still reference proguard-android.txt. AGP 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 durch, um repräsentative Plugins zu überprüfen.
Gilt dies nur für Capacitor-Probleme?
Nein. Jedes Android-Modul (Anwendung oder Bibliothek), das veraltete ProGuard-Baselinereferenzen verwendet, kann ähnliche AGP 9-Buildfehler erleiden. Dies ist besonders in Plugin-Ökosystemen sichtbar, da viele Repositories alte Templates teilen.
Welche Schlüsselwörter sind für diese Migration relevant?
Wenn Sie dies in internen Runbooks oder Support-Seiten dokumentieren, sollten Sie Begriffe wie:
- AGP 9-Buildfehler
- Android Gradle Plugin 9 ProGuard-Datei fehlt
- Capacitor-Plugin-Android-Build fehlgeschlagen
proguard-android.txtErsatzproguard-android-optimize.txtMigration
Verwandte Links
- Android-Entwickler: Übersicht über die App-Veröffentlichung
- Android-Gradle-Plugin: Hinweise zur Veröffentlichung
- Android code-Verkleinerung: R8 und Regeln
- Gradle-Dokumentation: Grundlagen der Build-Tools
- Capacitor-Dokumentation: Offizielle Dokumentation
- Capgo Dokumente: Auto-Update-Dokumente
Schlussfolgerung
Bei diesem AGP 9-Problemen handelt es sich um ein einfaches, aber leicht zu übersehendes Problem in Workspaces mit mehreren Plugins. Sobald Sie __CAPGO_KEEP_0__ durch ersetzen proguard-android.txt überall relevant, werden Android-Builds wieder vorhersehbar. proguard-android-optimize.txt Wenn Sie __CAPGO_KEEP_0__-Plugins verwenden, ist diese Migration bereits in den offiziellen Repositories angewendet, sodass Sie mit weniger Überraschungen aufsteigen können.
Fortsetzen Sie von Capgo Plugin AGP 9 Build Error Fix
Wenn Sie Capacitor Plugin AGP 9 Build Error Fix verwenden
um die CI/CD-Automatisierung zu planen, verbinden Sie es mit Capacitor Plugin AGP 9 Build Error Fix __CAPGO_KEEP_0__ Capgo CI/CD zur Produktworkflow in Capgo CI/CD Capgo Native Builds zur Produktworkflow in Capgo Native Builds Capgo Integrations zur Produktworkflow in Capgo Integrations CI/CD-Integration zur Implementierungsdetail in CI/CD-Integration, und GitHub Aktionen-Integration zur Implementierungsdetail in GitHub Aktionen-Integration