Saltar al contenido principal

Error de build de Capacitor Plugin con AGP 9: solución

Soluciona rápido errores de build de Capacitor en plugins con AGP 9. Aprende por qué falla proguard-android.txt, cómo usar proguard-android-optimize.txt y cómo Capgo arregló problemas de Android Gradle Plugin 9 en plugins.

Error de build de Capacitor Plugin con AGP 9: solución

Si tu Capacitor si el plugin empezó a fallar tras actualizar a Android Gradle Plugin 9 (AGP 9), es probable que te hayas topado con un problema de configuración de Gradle pequeño pero crítico.

Este post aborda específicamente búsquedas comunes como:

  • error de build de plugin Capacitor AGP 9
  • fallo en el build del plugin Android Gradle Plugin 9
  • proguard-android.txt no encontrado
  • AGP 9 getDefaultProguardFile error
  • Capacitor Falló el build de Android tras actualizar AGP

The short version:

  • proguard-android.txt ya no es la base predeterminada segura para referenciar en builds de plugins con AGP 9.
  • Cambia a proguard-android-optimize.txt.
  • Reconstruye y verifica.

La versión larga también importa, sobre todo si mantienes muchos plugins o grandes workspaces de Capacitor. En este artículo veremos:

  • Qué son Android y AGP en la cadena de build
  • Qué es Capacitor y cómo funcionan los builds de plugins
  • Qué Capgo es y por qué importa para la fiabilidad de los releases
  • El cambio exacto de AGP 9 que rompe las plantillas de plugins antiguas
  • Una estrategia de migración segura para uno o varios repos

¿Qué es Android en este contexto?

Android es tanto un sistema operativo como un ecosistema de build. Al lanzar una app o plugin Capacitor en Android, tu proyecto pasa por:

  1. Gradle como el sistema de build.
  2. Android Gradle Plugin (AGP) como la integración de Gradle específica para Android.
  3. El toolchain de Android SDK para empaquetar, reducir tamaño, linting y generar .aar, .apk, o .aab outputs.

Cuando cambian las versiones de AGP, también pueden cambiar algunos valores por defecto y archivos internos. Una configuración de plugin que funcionaba con AGP 8 puede fallar en AGP 9 si apunta a una base eliminada o deprecated.

¿Qué es Capacitor?

Capacitor es un runtime multiplataforma que te permite crear apps iOS/Android con code web (TypeScript, JavaScript, HTML, CSS) mientras sigues llamando a APIs nativas.

Las apps Capacitor suelen incluir:

  • Una capa web (tu UI y lógica de negocio)
  • Shells nativos (ios/, android/)
  • Plugins que exponen funciones nativas a JavaScript

Cada plugin tiene su propia configuración de build nativo. En Android, esto significa que cada plugin incluye un android/build.gradle archivo que AGP debe analizar y compilar correctamente.

Si la configuración de Gradle del plugin está desactualizada, el build de toda la app puede fallar, incluso si tu web code es correcta.

¿Qué es Capgo?

Capgo ofrece herramientas para la entrega y operaciones de Capacitor:

  • Actualizaciones en vivo para cambios en el bundle web
  • Ecosistema de plugins y paquetes de funciones nativas
  • Flujos de actualización para CI/CD ideales para equipos de Capacitor

Incluso con Live Update, la estabilidad del Native Build es innegociable. Necesitas builds de Android limpios para:

  • Lanzamientos en App Store / Play Store
  • Actualizaciones de plugins nativos
  • Migraciones de SDK de la plataforma
  • Onboarding del equipo y fiabilidad de CI

Por eso es clave corregir la compatibilidad con AGP 9: mantiene tu capa de plugins confiable para que tus pipelines de entrega sean predecibles.

Por qué AGP 9 rompe las configs de plugins antiguos

Históricamente, muchas plantillas de plugins usaban:

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

En configuraciones con AGP 9, esta referencia legacy puede fallar porque ya no se garantiza la existencia del archivo en la ubicación que esperan las plantillas o configs antiguas.

Los síntomas típicos incluyen errores de Gradle durante assemble, lint, o build fases, que suelen indicar la falta de recursos ProGuard baseline o referencias a archivos por defecto no válidas.

Contexto rápido: ProGuard, R8 y archivos baseline

  • R8 es el code shrinker/optimizer moderno en builds de Android.
  • proguard-rules.pro son las reglas de keep personalizadas de tu proyecto/plugin.
  • getDefaultProguardFile(...) inyecta una baseline proporcionada por Android.

Cuando haces referencia a:

  • proguard-android.txt -> legacy, baseline mínima
  • proguard-android-optimize.txt -> baseline moderna optimizada (default recomendado en los setups actuales)

Para compatibilidad con AGP 9, cambiar a proguard-android-optimize.txt es la solución práctica.

La solución en una línea

Update plugin and app module Gradle files:

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

Como mínimo, revisa:

  • android/build.gradle en cada plugin
  • example-app/android/app/build.gradle en los repos de los plugins
  • Cualquier generador o template que cree la config de Gradle del plugin

Guía de migración para un plugin

1. Encuentra 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. Verifica con Bun

bun run verify:android

Si tu plugin tiene scripts de verificación completos, ejecuta:

bun run verify

Actualización masiva de todos los repos de plugins

Si mantienes muchos repos de plugins en un mismo workspace, automatízalo:

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 valida que ningún código de plugin trackeado use todavía el archivo antiguo:

for d in capacitor-*; do
  [ -d "$d/.git" ] || continue
  git -C "$d" grep -n "proguard-android\\.txt" -- || true
done

"No matches" significa que la referencia base anterior ya no existe en los archivos del plugin rastreados.

Estado del rollout de Capgo

Completamos esta migración en todos los repositorios y plantillas oficiales de Capgo Capacitor:

  • Los módulos de plugins de Android ahora referencian proguard-android-optimize.txt
  • También actualizamos las apps de ejemplo de Android para plugins
  • Actualizamos las plantillas de scaffolding para que los nuevos plugins sean compatibles con AGP 9 por defecto

Esto evita errores comunes al actualizar a AGP 9 antes de que lleguen al CI.

Por qué esto es importante aunque tu build pase hoy

Es posible que no veas errores de inmediato si:

  • El caché de tu CI aún oculta el problema
  • Tienes versiones de AGP mezcladas entre proyectos
  • Solo se reconstruyen algunos módulos en desarrollo local

Pero tarde o temprano, los clean builds, los nuevos entornos o los runners actualizados lo sacan a la luz. Migrar ahora elimina esa inestabilidad oculta.

Solución de problemas si los builds siguen fallando tras el reemplazo

Revisa estos puntos:

  1. Todos los módulos están parcheados. Revisa los módulos de plugins, módulos de la app, ejemplos y assets de la plantilla.

  2. No hay una segunda referencia en scripts compartidos. Busca en todos los repositorios (incluidos los scripts de Gradle personalizados).

  3. Las cachés están limpias. Ejecuta ./gradlew clean y vuelve a compilar.

  4. Las versiones de AGP / Gradle / JDK están alineadas. Usa combinaciones compatibles según la documentación de Android para tu versión de AGP.

  5. CI usa las mismas versiones que local. Fija las versiones de JDK y Gradle wrapper en CI para evitar discrepancias de entorno.

  6. No estás parcheando solo node_modules. Corrige el código fuente del plugin trackeado, no los directorios de dependencias transitorias.

SEO FAQ: errores de build de plugins en AGP 9 Capacitor

¿Cómo solucionar? proguard-android.txt ¿no se encuentra en AGP 9?

Reemplaza:

getDefaultProguardFile('proguard-android.txt')

Con:

getDefaultProguardFile('proguard-android-optimize.txt')

Luego realiza un rebuild limpio.

¿Por qué falla el build de mi plugin Capacitor tras actualizar a Android Gradle Plugin 9?

Most failures come from legacy Gradle config in plugin android/build.gradle del plugin que aún hacen referencia a proguard-android.txt. Los proyectos con AGP 9 deberían usar proguard-android-optimize.txt.

¿Cuál es la vía de migración más rápida a AGP 9 para muchos plugins de Capacitor?

Usa un comando de búsqueda y reemplazo en todo el workspace y luego valida con git grep y ejecuta bun run verify:android en plugins representativos.

¿Es esto un problema exclusivo de Capacitor?

No. Cualquier módulo de Android (app o librería) que use referencias obsoletas de baseline de ProGuard puede encontrarse con errores de build similares con AGP 9. Se nota especialmente en ecosistemas de plugins porque muchos repositorios comparten plantillas antiguas.

¿Qué palabras clave son relevantes para esta migración?

Si vas a documentar esto en runbooks internos o páginas de soporte, incluye términos como:

  • error de build AGP 9
  • falta el archivo ProGuard de Android Gradle Plugin 9
  • falló el build de Android del plugin Capacitor
  • proguard-android.txt reemplazo
  • proguard-android-optimize.txt migración

Conclusión final

Este problema de AGP 9 es sencillo, pero fácil de pasar por alto en workspaces con múltiples plugins. Una vez que reemplaces proguard-android.txt con proguard-android-optimize.txt donde sea necesario, los builds de Android volverán a ser predecibles.

Si usas plugins de Capgo, esta migración ya está aplicada en los repositorios oficiales para que actualices sin sorpresas.

Continuar desde Capacitor Plugin AGP 9 Build Error Fix

Si estás usando Error de build de Capacitor Plugin con AGP 9: solución para planificar la automatización de CI/CD, conéctalo con CI/CD de Capgo para el flujo de trabajo del producto en Capgo CI/CD, Native Builds de Capgo para el flujo de trabajo del producto en Capgo Native Builds, Integraciones de Capgo para el flujo de trabajo del producto en Capgo Integraciones, Integración CI/CD para los detalles de implementación de CI/CD Integration, y Integración con GitHub Actions para los detalles de implementación de GitHub Actions Integration.

Live updates para apps Capacitor

Cuando un bug de la capa web está en producción, publica el fix a través de Capgo en lugar de esperar días a la aprobación de la app store. Los usuarios reciben la actualización en segundo plano mientras los cambios nativos siguen el flujo de revisión habitual.

Lo último de nuestro blog

Capgo te da la información clave que necesitas para crear una app móvil realmente profesional.