Si votre Capacitor plugin a cessé de fonctionner après avoir mis à niveau vers Android Gradle Plugin 9 (AGP 9), vous risquez de rencontrer une petite mais critique erreur de configuration Gradle.
Cet article cible spécifiquement les intentions de recherche courantes comme :
- Capacitor erreur de construction du plugin AGP 9
- Échec de la construction du plugin Android Gradle 9
proguard-android.txtnon trouvé- AGP 9
getDefaultProguardFileerreur - Capacitor La construction de l'application Android a échoué après la mise à niveau de AGP
La version courte :
proguard-android.txtn'est plus la référence de base sécurisée par défaut à utiliser dans les builds de plugin AGP 9.- Passer à
proguard-android-optimize.txt. - Reconstruire et vérifier.
La version longue compte aussi, surtout si vous gérez de nombreux plugins ou de grands espaces de travail Capacitor. Dans cet article, nous couvrons :
- Qu'est-ce qu'Android et AGP dans la chaîne de construction
- Qu'est-ce que Capacitor et comment les builds de plugin fonctionnent
- Qu'est-ce que Capgo est et pourquoi cela compte pour la fiabilité de la mise en production
- Le changement exact d'AGP 9 qui brise les anciens modèles de plugin
- Une stratégie de migration sûre pour un dépôt ou plusieurs dépôts
Qu'est-ce que Android dans ce contexte?
Android est à la fois un système d'exploitation et un écosystème de build. Lorsque vous envoyez une application ou un plugin Capacitor sur Android, votre projet passe par :
- Gradle comme système de build.
- Android Gradle Plugin (AGP) comme intégration Gradle spécifique à Android.
- Le kit de développement Android SDK pour la mise en forme, la compression, la vérification de l'intégrité et la production
.aar,.apkWhen les versions AGP changent, certaines valeurs par défaut et fichiers internes peuvent changer également. Une configuration d'un plugin qui fonctionnait pour AGP 8 peut échouer sur AGP 9 si elle pointe vers une ligne de base supprimée ou obsolète..aabQu'est-ce que __CAPGO_KEEP_0__?
__CAPGO_KEEP_0__
est un runtime cross-plateforme qui vous permet de créer des applications iOS/Android avec des Capacitor web (TypeScript, JavaScript, HTML, CSS) tout en appelant des APIs natives.
Les applications Capacitor comprennent généralement : is a cross-platform runtime that lets you build iOS/Android apps with web code (TypeScript, JavaScript, HTML, CSS) while still calling native APIs.
Capacitor apps usually include:
- Des plugins qui exposent des fonctionnalités natives au JavaScript
- Chaque plugin a sa propre configuration de build native. Sur Android, cela signifie que chaque plugin inclut un fichier
ios/,android/) - que AGP doit analyser et compiler correctement.
Les applications __CAPGO_KEEP_0__ comprennent généralement : A web layer (votre interface utilisateur et logique métier) Native shells ( android/build.gradle Plugins qui exposent des fonctionnalités natives au JavaScript
If les paramètres de plugin Gradle sont obsolètes, la construction de l'application entière peut échouer, même si votre web code est correct.
Qu'est-ce que Capgo?
Capgo fournit des outils autour de la livraison et de l'exploitation de Capacitor :
- Mises à jour en temps réel pour les modifications du bundle web
- Écosystème de plugins et packages de fonctionnalités natives
- Flux de travail d'actualisation compatibles CI/CD pour les équipes de Capacitor
Même avec des mises à jour en temps réel, la stabilité des builds natives n'est pas négociable. Vous avez toujours besoin de builds Android propres pour :
- Lancements d'applications sur l'App Store / Play Store
- Mises à jour de plugins natives
- Migrations de la plateforme SDK
- Intégration de l'équipe et fiabilité de la CI
C'est pourquoi les correctifs de compatibilité AGP 9 sont importants : ils gardent votre couche de plugin fiable, de sorte que les pipelines de livraison restent prévisibles.
Pourquoi AGP 9 brise les anciens configs de plugin
Beaucoup de modèles de plugin ont historiquement utilisé :
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
Dans les configurations AGP 9, cette référence de base légendaire peut échouer car le fichier ancien n'est plus garanti dans la localisation attendue par les anciens modèles/configs.
Les symptômes typiques incluent des erreurs Gradle pendant les phases de assemble, lint, ou build phases, souvent pointant vers des ressources de ProGuard de base manquantes ou des références de fichier par défaut invalides.
Contexte rapide : ProGuard, R8, et fichiers de base
- R8 est le code moderne réducteur/optimiseur dans les builds Android.
proguard-rules.proest vos règles de conservation personnalisées du projet/plugin.getDefaultProguardFile(...)injecte une base de ligne de conduite Android fournie.
Lorsque vous référez :
proguard-android.txt–> base de ligne de conduite légère, minimaleproguard-android-optimize.txt–> base de ligne de conduite optimisée moderne (recommandée par défaut dans les configurations actuelles)
Pour la compatibilité avec AGP 9, passer à proguard-android-optimize.txt est la solution pratique.
La solution de correction en une ligne
Mettez à jour les fichiers Gradle des plugins et des modules d'application :
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
Au minimum, vérifiez :
android/build.gradledans chaque pluginexample-app/android/app/build.gradledans les dépôts de plugins- Tous les fichiers de générateur/modèle qui créent de nouvelles configurations Gradle de plugin
Guide de migration pour un plugin
1. Trouvez la référence ancienne
rg -n "proguard-android\\.txt" android example-app
2. La remplacez
perl -pi -e "s/proguard-android\\.txt/proguard-android-optimize.txt/g" \
android/build.gradle example-app/android/app/build.gradle
3. Vérifiez avec Bun
bun run verify:android
Si votre plugin dispose de scripts de vérification complets, exécutez :
bun run verify
Mise à jour de masse de tous les dépôts de plugin
Si vous gérez de nombreux dépôts de plugin dans un même espace de travail, automatisez-le :
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"
Vérifiez ensuite que aucune source de plugin suivi n'utilise toujours le fichier ancien :
for d in capacitor-*; do
[ -d "$d/.git" ] || continue
git -C "$d" grep -n "proguard-android\\.txt" -- || true
done
Aucun match signifie que la référence de base ancienne est disparue des fichiers de source de plugin suivis.
Capgo : statut de déploiement
Nous avons effectué cette migration dans tous les dépôts de plugin officiels Capgo Capacitor et les modèles :
- Les modules Android des plugins se référent désormais
proguard-android-optimize.txt - Exemples d'applications Android du plugin ont été mis à jour
- Les modèles de squelette de plugin ont été mis à jour afin que les nouveaux plugins soient par défaut AGP 9-sûrs
Cela empêche une classe commune d'erreurs d'amélioration AGP 9 avant qu'elles ne frappent CI.
Pourquoi cela est important même si votre build passe aujourd'hui
Vous ne voyez pas les erreurs immédiatement si :
- Votre cache CI masque toujours l'issue
- Vous avez des versions mixtes d'AGP à travers les projets
- Seuls certains modules sont reconstruits en local dev
Mais finalement, les builds propres, les nouveaux environnements ou les exécuteurs mis à jour exposent cela. La migration maintenant supprime l'instabilité cachée.
Dépannage si les builds échouent encore après le remplacement
Vérifiez ces points :
-
Tout module est patché. Regardez les modules de plugin, les modules d'applications, les échantillons et les actifs de modèle.
-
There is no second reference in scripts partagés. Recherchez dans l'ensemble des dépôts (y compris les scripts Gradle personnalisés).
-
Les caches sont propres. Exécutez
./gradlew cleanet reconstruisez. -
Les versions d'AGP / Gradle / JDK sont alignées. Utilisez les combinaisons prises en charge par la documentation Android pour votre version d'AGP.
-
Le CI utilise les mêmes versions que locales. Fixez les versions JDK et wrapper Gradle dans le CI pour éviter la dérive de l'environnement.
-
Vous ne patchez que
node_modules. Fixez la source du plugin suivi, pas les répertoires de dépendances transitoires.
FAQ SEO : erreurs de construction du plugin AGP 9 Capacitor
Comment corrigez-vous proguard-android.txt non trouvé dans AGP 9?
Remplacez :
getDefaultProguardFile('proguard-android.txt')
Par :
getDefaultProguardFile('proguard-android-optimize.txt')
Exécutez ensuite une reconstruction propre.
Pourquoi ma Capacitor extension de plugin ne se construit pas après avoir mis à niveau vers Android Gradle Plugin 9 ?
La plupart des échecs proviennent de la configuration Gradle legacy dans le plugin android/build.gradle fichiers qui référencent toujours proguard-android.txt Les projets AGP 9 doivent utiliser proguard-android-optimize.txt.
Quel est le chemin de migration le plus rapide AGP 9 pour de nombreux Capacitor plugins ?
Utilisez une commande de recherche et de remplacement à l'échelle de l'ensemble du projet, puis validez avec git grep et exécutez bun run verify:android sur des plugins représentatifs.
Est-ce que cela ne concerne que Capacitor ?
Non. Toute module Android (application ou bibliothèque) utilisant des références de ligne de base de ProGuard obsolètes peut rencontrer des erreurs de construction similaires AGP 9. Cela est particulièrement visible dans les écosystèmes de plugins car de nombreux dépôts partagent des anciens modèles.
Quels mots-clés sont pertinents pour cette migration ?
Si vous documentez cela dans des livres de runbooks internes ou des pages de support, incluez des termes comme :
- Erreur de build AGP 9
- Fichier ProGuard du Plugin Gradle Android manquant
- Capacitor plugin build Android échoué
proguard-android.txtremplacementproguard-android-optimize.txtmigration
Liens connexes
- Développeurs Android: Présentation de la construction de votre application
- Plugin Gradle Android: Notes de version
- Android code réduction : R8 et règles
- Documentation Gradle: Fondamentaux de l'outil de construction
- Documentation Capacitor : Documentation officielle
- Documentation Capgo : Documentation de mise à jour automatique
Conclusion finale
Ce problème AGP 9 est simple, mais il est facile de le manquer dans les environnements de travail multi-plugin. Une fois que vous remplacez proguard-android.txt par proguard-android-optimize.txt partout où cela est pertinent, les builds Android deviennent prévisibles à nouveau.
Si vous utilisez des plugins Capgo , cette migration est déjà appliquée dans les dépôts officiels, vous pouvez donc mettre à niveau avec moins de surprises.
Continuez à partir du Capacitor Plugin AGP 9 Build Error Fix
Si vous utilisez Le Capacitor Plugin AGP 9 Build Error Fix pour planifier l'automatisation CI/CD, connectez-le à le Capgo CI/CD pour le flux de travail du produit dans le Capgo CI/CD, le Capgo Native Builds pour le flux de travail du produit dans le Capgo Native Builds, le Capgo Integrations pour le flux de travail du produit dans le Capgo Integrations, Intégration CI/CD pour le détail d'implémentation dans l'Intégration CI/CD GitHub Actions d'intégration pour le détail d'implémentation dans GitHub Actions d'intégration.