Si votre Capacitor Le plugin a cessé de fonctionner après avoir mis à niveau Android Gradle Plugin 9 (AGP 9), vous risquez probablement 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
- Erreur de construction du plugin AGP 9 du plugin
proguard-android.txtnon trouvé- AGP 9
getDefaultProguardFileerreur - Capacitor échec de la construction Android après mise à niveau 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 AGP 9 du plugin.- Passer à
proguard-android-optimize.txt. - Reconstruire et vérifier.
La version plus longue compte également, surtout si vous gérez de nombreux plugins ou de grands Capacitor espaces de travail.
- Qu'est-ce qu'Android et AGP sont dans la chaîne de construction
- Qu'est-ce que Capacitor est et comment fonctionnent les builds des plugins
- Qu'est-ce que Capgo est et pourquoi cela compte pour la fiabilité des releases
- Le changement exact d'AGP 9 qui brise les anciens modèles de template de plugin
- Une stratégie de migration sûre pour un dépôt ou plusieurs dépôts
Qu'est-ce qu'Android dans ce contexte ?
Android est à la fois un système d'exploitation et un écosystème de construction. Lorsque vous envoyez une application ou un plugin Capacitor sur Android, votre projet passe par :
- Gradle comme le système de construction.
- Android Gradle Plugin (AGP) comme une intégration Gradle spécifique à Android.
- L'outil de chaîne d'outils Android SDK pour l'emballage, la réduction, la mise en forme et la production
.aar,.apkou.aables sorties.
Lorsque les versions d'AGP changent, certaines valeurs par défaut et des fichiers internes peuvent changer également. Une configuration de plugin qui fonctionnait pour AGP 8 peut ne pas fonctionner sur AGP 9 si elle pointe vers une ligne de base supprimée ou obsolète.
Qu'est-ce que Capacitor?
Capacitor est un runtime cross-plateforme qui vous permet de construire des applications iOS/Android avec des code web (TypeScript, JavaScript, HTML, CSS) tout en appelant des API natives.
Capacitor applications comprennent généralement :
- Une couche web (votre interface utilisateur et votre logique métier)
- Huitres natives (
ios/,android/) - Plugins qui exposent les fonctionnalités natives au JavaScript
Chaque plugin a sa propre configuration de build native. Sur Android, cela signifie que chaque plugin inclut un android/build.gradle fichier que AGP doit analyser et compiler correctement.
Si les paramètres Gradle des plugins sont obsolètes, la construction de l'application entière peut échouer, même si votre paquet 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 paquet web
- Écosystème de plugins et de packages de fonctionnalités natives
- Flux de travail d'actualisation CI/CD pour les équipes de Capacitor
Même avec les mises à jour en temps réel, la stabilité des builds natifs n'est pas négociable. Vous avez toujours besoin de builds Android propres pour :
- Lancements sur l'App Store / Play Store
- Mises à jour de plugins natifs
- Migrations de plateforme SDK
- Intégration de nouveaux membres 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, afin que les pipelines de livraison restent prévisibles.
Pourquoi AGP 9 brise les anciens configs de plugins
Beaucoup de modèles de plugins ont historiquement utilisé :
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
Dans les configurations AGP 9, cette référence de base de l'ancien système 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 manquantes ou des références de fichiers par défaut invalides.
Contexte rapide : ProGuard, R8 et fichiers de base
- R8 est le compresseur/optimiseur moderne code dans les builds Android.
proguard-rules.prosont vos règles de conservation personnalisées pour le projet/plugin.getDefaultProguardFile(...)injecte un fichier de base fourni par Android.
Lorsque vous référez :
proguard-android.txt-> fichier de base legacy, minimalproguard-android-optimize.txt-> fichier de base optimisé moderne (recommandé 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 du plugin et du module d'application :
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
Vérifiez au minimum :
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 une nouvelle configuration 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. Remplacez-la
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 en batch de tous les dépôts de plugins
Si vous gérez de nombreux dépôts de plugins dans un même espace de travail, automatissez-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 suivie 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
Pas de correspondance signifie que l'ancienne référence de base a disparu des fichiers de plugin suivis.
Capgo statut de déploiement
Nous avons effectué cette migration dans tous les référentiels et modèles de plugin officiels Capgo Capacitor :
- Les modules Android des plugins référencent désormais
proguard-android-optimize.txt - Les exemples d'applications Android des plugins ont également été mis à jour
- Les modèles de création de plugins ont été mis à jour pour que les nouveaux plugins soient par défaut AGP 9-sûrs
Cela empêche une classe commune de problèmes de mise à niveau AGP 9 avant qu'ils ne rencontrent la CI.
Pourquoi cela est important même si votre build passe aujourd'hui
Vous ne voyez peut-être pas les erreurs immédiatement si :
- Votre cache CI masque toujours le problème
- Vous avez des versions AGP mixtes dans les projets
- Seuls certains modules sont reconstruits en développement local
Mais finalement, les builds propres, les nouveaux environnements ou les exécuteurs mis à jour révèlent cela. Effectuer la migration maintenant supprime l'instabilité cachée.
Dépannage si les builds échouent toujours après la remplacement
Vérifiez ces points :
-
Chaque module est patché. Regardez les modules de plugin, les modules d'application, les exemples et les actifs de modèle.
-
Il n'y a pas de deuxième référence dans les scripts partagés. Recherchez les dépôts entiers (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 supportées par la documentation Android pour votre version d'AGP.
-
Le CI utilise les mêmes versions que locales. Fixez les versions du wrapper Gradle et du JDK 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 build du plugin AGP 9 Capacitor
Comment puis-je résoudre proguard-android.txt n'a pas été trouvé dans AGP 9 ?
Remplacez :
getDefaultProguardFile('proguard-android.txt')
Par :
getDefaultProguardFile('proguard-android-optimize.txt')
Effectuez ensuite une reconstruction propre.
Pourquoi ma plugin Capacitor ne construit pas après avoir mis à niveau vers Android Gradle Plugin 9 ?
La plupart des échecs proviennent de configurations Gradle légacière dans les plugins android/build.gradle fichiers qui référencent toujours proguard-android.txt. Les projets AGP 9 devraient utiliser proguard-android-optimize.txt.
Quel est le chemin de migration le plus rapide AGP 9 pour de nombreux plugins Capacitor ?
Utilisez une commande de recherche et de remplacement à l'échelle de l'espace de travail, puis validez avec git grep et exécutez bun run verify:android plugins représentatifs.
Est-ce que cela ne concerne que ce problème Capacitor?
Non. Toute module Android (application ou bibliothèque) utilisant des références de ligne de base ProGuard obsolètes peut rencontrer des erreurs de build AGP 9 similaires. Cela est particulièrement visible dans les écosystèmes de plugins car de nombreux dépôts partagent des modèles anciens.
Quels mots-clés sont pertinents pour cette migration?
Si vous documentez cela dans des livres de run ou des pages de support internes, incluez des termes comme :
- erreur de build AGP 9
- fichier ProGuard d'Android Gradle Plugin 9 manquant
- Capacitor plugin Android build échoué
proguard-android.txtremplacementproguard-android-optimize.txtmigration
Liens connexes
- Développeurs Android : Vue d'ensemble de votre application
- Plugin Gradle Android : Notes de version
- Réduction de taille Android code : R8 et règles
- Documentation Gradle : Fondamentaux de l'outil de construction
- Capacitor documentation : Documentation officielle
- Capgo documentation : Documentation de mise à jour automatique
Conclusion finale
Cette erreur AGP 9 est simple, mais elle est facile à manquer dans les environnements de travail multi-plugin. proguard-android.txt Une fois que vous remplacez proguard-android-optimize.txt par
If you use Capgo plugins, this migration is already applied in official repositories so you can upgrade with fewer surprises.