Si tienes Capacitor El plugin dejó de funcionar después de actualizar a Android Gradle Plugin 9 (AGP 9), es probable que esté golpeando un pequeño pero crítico problema de configuración de Gradle.
Este post se centra específicamente en intenciones de búsqueda comunes como:
- Capacitor error de construcción del plugin AGP 9
- Error de construcción del plugin de Android Gradle Plugin 9
proguard-android.txtno encontrado- AGP 9
getDefaultProguardFileerror - Capacitor falla de construcción de Android después de la actualización de AGP
La versión corta:
proguard-android.txtYa no es la referencia de línea base segura por defecto para referenciar en los builds de plugin de AGP 9.- Cambiar a
proguard-android-optimize.txt. - Reconstruir y verificar.
La versión más larga también es importante, especialmente si mantienes muchos plugins o grandes Capacitor espacios de trabajo.
- ¿Qué son Android y AGP en la cadena de compilación?
- ¿Qué es Capacitor y cómo funcionan las compilaciones de plugins?
- ¿Qué? Capgo ¿Qué es y por qué esto importa para la confiabilidad de la liberación?
- El cambio exacto de AGP 9 que rompe los antiguos plantillas de plugin
- Una estrategia de migración segura para un repositorio o muchos repositorios
¿Qué es Android en este contexto?
Android es tanto un sistema operativo como un ecosistema de compilación. Cuando envías una aplicación o plugin __CAPGO_KEEP_0__ en Android, tu proyecto pasa por: is both an operating system and a build ecosystem. When you ship a Capacitor app or plugin on Android, your project goes through:
- ¿Qué es Android en este contexto? como el sistema de compilación.
- Plugin de Gradle para Android (AGP) como integración de Gradle específica de Android.
- La herramienta de cadena de herramientas de Android SDK para empaquetar, reducir, analizar y producir
.aar,.apk, o.aabsalidas.
Cuando cambian las versiones de AGP, algunos valores por defecto y archivos internos también pueden cambiar. Una configuración de plugin que funcionó para AGP 8 puede fallar en AGP 9 si apunta a una base eliminada o obsoleta.
¿Qué es Capacitor?
Capacitor es un tiempo de ejecución transversal que te permite construir aplicaciones iOS/Android con web code (TypeScript, JavaScript, HTML, CSS) mientras aún puedes llamar a APIs nativas.
Capacitor apps suelen incluir:
- Una capa web (tu interfaz y lógica de negocio)
- Ventanas nativas (
ios/,android/) - Plugins que expusan características nativas a JavaScript
Cada plugin tiene su propia configuración de compilación nativa. En Android, esto significa que cada plugin incluye un android/build.gradle archivo que AGP debe parsear y compilar correctamente.
Si los ajustes de Gradle de los plugins están desactualizados, la compilación de toda la aplicación puede fallar, incluso cuando tu paquete web code está correcto.
¿Qué es Capgo?
Capgo proporciona herramientas alrededor de la entrega y operaciones de Capacitor:
- Actualizaciones en vivo para cambios en el paquete de la web
- Ecosistema de plugins y paquetes de características nativas
- Flujos de trabajo de actualización amigables con CI/CD para equipos de Capacitor
Aunque existen actualizaciones en vivo, la estabilidad de compilación nativa no es negociable. Todavía necesitas compilaciones de Android limpias para:
- Lanzamientos de App Store / Play Store
- Actualizaciones de plugins nativos
- Migraciones de plataforma SDK
- Incorporación de nuevos miembros del equipo y confiabilidad de CI
Por eso, los arreglos de compatibilidad con AGP 9 son importantes: mantienen tu capa de plugin confiable para que los pipelines de entrega sean predecibles.
¿Por qué AGP 9 rompe las configuraciones de plugins más antiguas?
Muchos modelos de plugin utilizaban históricamente:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
En configuraciones de AGP 9, esta referencia de línea base legada puede fallar porque el archivo antiguo ya no está garantizado en la ubicación esperada por los modelos/configuraciones más antiguos.
Los síntomas típicos incluyen errores de Gradle durante assemble, lint, o build fases, a menudo apuntando a recursos de línea base de ProGuard faltantes o referencias de archivo predeterminadas inválidas.
Antecedente rápido: ProGuard, R8 y archivos de línea base
- R8 es el moderno code reductor/optimizador en compilaciones de Android.
proguard-rules.pro¿Tiene sus reglas de mantener personalizadas en el proyecto/plug-in?getDefaultProguardFile(...)inyecta una línea base proporcionada por Android.
Cuando se refiere a:
proguard-android.txt-> línea base legado, mínimaproguard-android-optimize.txt-> línea base moderna optimizada (recomendado por defecto en configuraciones actuales)
Para compatibilidad con AGP 9, cambiar a proguard-android-optimize.txt es la solución práctica.
La solución de una sola línea
Actualice los archivos Gradle del plugin y del módulo de la aplicación:
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
Verifique al menos:
android/build.gradleen cada pluginexample-app/android/app/build.gradleen repositorios de plugins- Cualquier archivo de generador/plantilla que cree una nueva configuración de Gradle para plugins
Guía de migración para un plugin
1. Encuentre la referencia antigua
rg -n "proguard-android\\.txt" android example-app
2. Reemplázala
perl -pi -e "s/proguard-android\\.txt/proguard-android-optimize.txt/g" \
android/build.gradle example-app/android/app/build.gradle
3. Verifique con Bun
bun run verify:android
Si su plugin tiene scripts de verificación completos, ejecute:
bun run verify
Actualice en lote todos los repositorios de plugins
Si mantiene muchos repositorios de plugins en un workspace, automatícelo:
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"
Luego valide que ninguna fuente de plugin rastreada aún utilice el archivo antiguo:
for d in capacitor-*; do
[ -d "$d/.git" ] || continue
git -C "$d" grep -n "proguard-android\\.txt" -- || true
done
No hay coincidencias significa que la referencia de línea base antigua ha desaparecido de los archivos de plugins rastreados.
Capgo estado de lanzamiento
Completamos esta migración en todos los repositorios y plantillas de plugins oficiales Capgo Capacitor:
- Los módulos de plugins Android ahora se refieren a
proguard-android-optimize.txt - Los ejemplos de aplicaciones Android de plugins se actualizaron también
- Las plantillas de scaffolding de plugins se actualizaron para que los nuevos plugins sean seguros por defecto con AGP 9
Esto previene una clase común de fallas de actualización de AGP 9 antes de que lleguen a CI
¿Por qué esto es importante incluso si tu compilación pasa hoy?
Es posible que no veas fallas inmediatamente si:
- Tu caché de CI aún oculta el problema
- Tienes versiones mixtas de AGP en proyectos
- Solo se recompilan algunas módulos en desarrollo local
Pero eventualmente, los compilados limpios, nuevos entornos o ejecutores actualizados lo revelan. Realizar la migración ahora elimina la inestabilidad oculta.
Resolución de problemas si los compilados siguen fallando después de la sustitución
Verifica estos puntos:
-
Cada módulo está parcheado. Mira los módulos de plugins, módulos de aplicación, ejemplos y activos de plantilla.
-
No hay segunda referencia en scripts compartidos. Busca en todo el repositorio (incluyendo scripts Gradle personalizados).
-
Las cachés están limpias. Ejecuta
./gradlew cleany reconstruye. -
Las versiones de AGP / Gradle / JDK están alineadas. Utiliza combinaciones soportadas por la documentación de Android para tu versión de AGP.
-
El CI utiliza las mismas versiones que la local. Fija las versiones de JDK y wrapper de Gradle en el CI para evitar la deriva del entorno.
-
No estás parcheando solo
node_modules. Repara la fuente de plugin rastreada, no los directorios de dependencias de transición.
Preguntas frecuentes de SEO: errores de compilación de plugin de AGP 9 Capacitor
¿Cómo puedo solucionar proguard-android.txt no se encuentra en AGP 9?
Sustituye:
getDefaultProguardFile('proguard-android.txt')
Por:
getDefaultProguardFile('proguard-android-optimize.txt')
Luego ejecuta una reconstrucción limpia.
¿Por qué mi plugin Capacitor falla al compilar después de actualizar a Android Gradle Plugin 9?
La mayoría de las fallas provienen de la configuración de Gradle legada en el plugin android/build.gradle archivos que aún se refieren a proguard-android.txt. Los proyectos de AGP 9 deben utilizar proguard-android-optimize.txt.
¿Cuál es el camino de migración más rápido de AGP 9 para muchos plugins Capacitor?
Utiliza un comando de búsqueda y reemplazo en todo el espacio de trabajo, luego valida con git grep y ejecuta bun run verify:android en plugins representativos.
¿Es esto solo un problema de Capacitor?
No. Cualquier módulo de Android (aplicación o biblioteca) que utilice referencias de ProGuard de línea base obsoletas puede tener errores de construcción similares de AGP 9. Es especialmente visible en ecosistemas de plugins porque muchos repositorios comparten plantillas antiguas.
¿Cuáles son las palabras clave relevantes para esta migración?
Si está documentando esto en runbooks internos o páginas de soporte, incluya términos como:
- Error de construcción de AGP 9
- Archivo de ProGuard de Android Gradle Plugin 9 faltante
- Capacitor plugin de Android construcción fallida
proguard-android.txtsustituciónproguard-android-optimize.txtmigración
Enlaces relacionados
- Desarrolladores de Android: Resumen de tu aplicación
- Plugin de Gradle para Android: Notas de lanzamiento
- Reducción de Android code: R8 y reglas
- Documentación de Gradle: Fundamentos del herramienta de construcción
- Capacitor Documentación: Documentación oficial
- Capgo Documentación: Documentación de actualización automática
Toma de nota final
Esta cuestión de AGP 9 es simple, pero es fácil de pasar por alto en entornos de trabajo con múltiples plugins. Una vez que reemplaces proguard-android.txt por proguard-android-optimize.txt en todos los lugares relevantes, los compilados de Android vuelven a ser predecibles.
Si utilizas plugins Capgo, esta migración ya está aplicada en repositorios oficiales, por lo que puedes actualizar con menos sorpresas.