Saltar al contenido
WebViewGold Del vibe coding a la App Store
Español
Consigue WebViewGold

Claude Code

Cómo solucionar errores de compilación Gradle en el proyecto Android de WebViewGold con Claude Code

Las compilaciones de Android suelen fallar por motivos poco glamurosos: Gradle se ejecuta con el JDK equivocado, Android Studio es más antiguo que el plugin de Gradle del proyecto, un cambio de nombre de paquete se olvidó de google-services.json o el bundle está firmado con una clave que Google Play no espera. Claude Code puede ejecutar el wrapper de Gradle, leer el stack trace y corregir rápido la mayoría de estos casos. Aquí tienes los errores, los comandos y las partes que siguen siendo cosa tuya.

Desde $109 de pago único por plataforma, o deja que nuestro equipo lo haga todo desde $698.

  • Garantía de aprobación – o te devolvemos el dinero en 14 días
  • Sin programar
  • Pago único, actualizaciones gratuitas
  • Soporte humano 24/7
  • Hecho en Alemania desde 2014 · ISO 27001

Tres versiones que tienen que encajar

Cada compilación de Android depende de que encajen tres versiones: el JDK que ejecuta Gradle, la versión de Gradle fijada en gradle/wrapper/gradle-wrapper.properties y el Android Gradle plugin (AGP) declarado en los archivos de compilación. Además, compileSdk y targetSdk en app/build.gradle necesitan que esté instalada la plataforma del SDK correspondiente. AGP 8 y posteriores necesitan como mínimo JDK 17.

La trampa clásica: Android Studio compila con su propio JDK incluido, mientras que Claude Code en la terminal usa aquel al que apunte JAVA_HOME. Por eso un proyecto puede compilar bien en el IDE y fallar en la shell del agente, o al revés. Arregla primero el entorno. Actualizar AGP o Gradle para esquivar un problema de JDK es la forma en que un asunto de diez minutos se convierte en un fin de semana.

El proyecto Android de WebViewGold es un proyecto estándar de Android Studio (la carpeta de descarga se llama AndroidStudioSource) que se configura sobre todo en Config.java y app/build.gradle, como muestra la documentación de configuración de Android.

Los comandos de diagnóstico

Pega la salida en Claude Code o deja que el agente ejecute los comandos por sí mismo. En Windows, usa gradlew.bat en lugar de ./gradlew.

bash
# Run in the folder that contains gradlew

# Versions: Gradle, and the JVM it runs on
./gradlew --version
grep distributionUrl gradle/wrapper/gradle-wrapper.properties
grep -rnE "com.android.tools.build:gradle|com.android.application" build.gradle settings.gradle app/build.gradle
grep -nE "compileSdk|targetSdk|minSdk|applicationId|namespace|versionCode|versionName" app/build.gradle
java -version
echo "JAVA_HOME=$JAVA_HOME"

# Use the JDK that ships with Android Studio (macOS path; on Windows it is
# C:\Program Files\Android\Android Studio\jbr)
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"

# Debug build with a readable log
./gradlew assembleDebug --stacktrace 2>&1 | tee build-debug.log

# Release App Bundle for Google Play (uses your signing config)
./gradlew bundleRelease 2>&1 | tee build-release.log

Errores, causas y soluciones

Error (extracto)CausaSoluciónQuién
Android Gradle plugin requires Java 17 to run. You are currently using Java 11.La terminal usa un JDK antiguoApunta JAVA_HOME al JDK incluido con Android Studio o a JDK 17 o 21. En el IDE: Settings, Build, Execution, Deployment, Build Tools, Gradle, Gradle JDKClaude (terminal), tú (ajuste del IDE)
Unsupported class file major version 65La versión de Gradle es demasiado antigua para el JDK que la ejecuta (65 es Java 21)Ejecuta Gradle con el JDK para el que se hizo el proyecto; sube la versión del wrapper solo si lo hace el proyecto actual de WebViewGoldClaude
Minimum supported Gradle version is …El wrapper es más antiguo de lo que exige la versión de AGP, a menudo tras una actualización accidental de AGPDeshaz la actualización de AGP o pon en el wrapper la versión que indica el errorClaude
The project is using an incompatible version (AGP …) of the Android Gradle pluginAndroid Studio es más antiguo que el proyectoActualiza Android Studio; no bajes la versión del proyectoTú
SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable…Las compilaciones desde la línea de comandos no saben dónde está el SDKDefine sdk.dir en local.properties (nunca se sube con commit) o exporta ANDROID_HOMEClaude
Failed to find target with hash string 'android-36'La plataforma del SDK para compileSdk no está instaladaInstálala en el SDK Manager o con sdkmanager "platforms;android-36"Claude o tú
Dependency '…' requires libraries and applications that depend on it to compile against version 36 or laterSe actualizó una librería por encima del compileSdk del proyectoDeshaz la actualización de la librería, o sube compileSdk de forma deliberada y pruebaClaude
No matching client found for package name 'com.example.app'google-services.json sigue perteneciendo al paquete antiguo tras un cambio de nombreRegistra el nuevo paquete en Firebase, descarga un nuevo google-services.json y sustituye el de app/Tú (Firebase), Claude (archivo)
Keystore was tampered with, or password was incorrectContraseña del almacén incorrecta o archivo de keystore equivocadoRevisa tú mismo keystore.properties; nunca pegues contraseñas en el chatTú
Play Console: Your Android App Bundle is signed with the wrong keyFirmado con una clave distinta de la clave de subida que espera Google PlayCompara las huellas SHA-1 con keytool -list -v -keystore your.jks; encuentra el keystore correcto o solicita un restablecimiento de la clave de subida en la Play ConsoleTú
Play Console: Version code … has already been usedNo se incrementó versionCodeIncrementa versionCode en app/build.gradleClaude
Play Console: You uploaded a debuggable APK or Android App BundleSe subió una compilación de depuraciónCompila con bundleRelease y sube el .aab de app/build/outputs/bundle/release/Claude
Play Console: error de nivel de API objetivotargetSdk está por debajo del requisito actual de GoogleConsulta la sección sobre targetSdk más abajoClaude y tú

Mi WebView de iOS finalmente está aprobada. ¡Gracias!

Taha Farooqui · CodeCanyon

Cambiar el nombre del paquete sin romper la compilación

WebViewGold para Android viene con el nombre de paquete com.webviewgold.myappname, y la documentación de publicación te pide hacer una copia de seguridad del proyecto y cambiarlo antes de la primera subida (con un video para el cambio de nombre completo y otro para acortar el nombre). Hay tres identificadores implicados, y los agentes tienden a cambiar solo uno:

  • applicationId en app/build.gradle: la identidad en Google Play. Debe ser único y nunca puede cambiar después de la primera subida; consulta elígelo una sola vez.
  • namespace: el paquete de las clases generadas R y BuildConfig.
  • El paquete Java de las carpetas de código fuente y la línea package al principio de cada archivo.

Cambia el nombre con la refactorización que muestra el video y luego deja que Claude Code busque restos con grep -rn "com.webviewgold.myappname" app/. Actualiza todo lo que deba seguir al nuevo nombre, incluido google-services.json para Firebase y, si usas App Links, el nombre del paquete en tu assetlinks.json. Ese archivo también contiene una huella SHA-256: con Play App Signing, usa la huella de la clave de firma de la app que muestra la Play Console, no la de tu clave de subida.

Mantén la firma fuera del repositorio

Si configuras la firma de release desde cero, este es el patrón estándar de Android: los valores de firma salen de un archivo keystore.properties que solo existe en tu máquina. Haz de esto un cambio único y revisado (escríbelo tú o deja que Claude lo añada una vez), crea tú el keystore y el archivo de propiedades y mantén los dos fuera de Git. Si tu proyecto ya tiene un bloque signingConfigs que funciona, no lo toques.

groovy
// app/build.gradle (excerpt, merge into the existing file)
def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
    signingConfigs {
        release {
            if (keystorePropertiesFile.exists()) {
                storeFile file(keystoreProperties["storeFile"])
                storePassword keystoreProperties["storePassword"]
                keyAlias keystoreProperties["keyAlias"]
                keyPassword keystoreProperties["keyPassword"]
            }
        }
    }
    buildTypes {
        release {
            // keep the template's existing release options, add only this line
            signingConfig signingConfigs.release
        }
    }
}

// keystore.properties lives next to settings.gradle and is NOT committed
// (add keystore.properties, *.jks and *.keystore to .gitignore):
// storeFile=/Users/you/keys/example-upload.jks
// storePassword=...
// keyAlias=upload
// keyPassword=...

El ciclo de reparación

Primero el entorno, después el proyecto y la firma al final.

  1. Prepara la máquina

    Instala Android Studio y abre el proyecto una vez para que descargue el SDK y cree local.properties. Después inicia Claude Code en la carpeta que contiene gradlew.

  2. Diagnostica

    Pega el prompt de abajo. Claude recopila las versiones, ejecuta una compilación de depuración con --stacktrace y nombra el primer error real.

  3. Arregla el entorno

    El JDK, la ruta del SDK y las plataformas del SDK que faltan van primero. Estas correcciones no cambian ni un solo archivo del proyecto.

  4. Arregla el proyecto, lo mínimo

    Si un cambio en el proyecto es inevitable, el agente propone el cambio de versión compatible más pequeño y espera tu OK. Haz un commit aparte para que sea fácil revertirlo.

  5. Compila el bundle de release

    Ejecuta ./gradlew bundleRelease con tu keystore en su sitio, o compílalo en Android Studio desde Build, Generate Signed App Bundle.

  6. Sube primero a pruebas internas

    Pega cualquier error de la Play Console en Claude Code. Las cuentas de desarrollador personales nuevas también necesitan una prueba cerrada antes de producción; consulta el requisito de 12 testers.

El prompt de diagnóstico

El punto 5 es el importante: el agente nunca necesita tu keystore ni tus contraseñas para arreglar una compilación.

Pégalo en Claude Code en la carpeta del proyecto Android
Esta carpeta es un proyecto Android de WebViewGold (contiene gradlew). La compilación falla. Haz un diagnóstico antes de cambiar nada.

1. Ejecuta ./gradlew --version y java -version, muestra JAVA_HOME y enséñame: distributionUrl de gradle/wrapper/gradle-wrapper.properties, la versión del Android Gradle plugin, compileSdk, targetSdk, minSdk, applicationId, namespace, versionCode y versionName.
2. Ejecuta ./gradlew assembleDebug --stacktrace y guarda la salida en build-debug.log.
3. Cita el primer error real y explica la causa. Di si es un problema del entorno (JDK, ubicación del SDK, plataforma del SDK que falta) o un problema del proyecto.
4. Da prioridad a las correcciones del entorno. No actualices el Android Gradle plugin, Gradle, Kotlin ni ninguna dependencia salvo que el error lo haga inevitable; en ese caso, propón el cambio compatible más pequeño y espera mi OK.
5. Nunca abras, muestres ni cambies archivos de keystore, keystore.properties, contraseñas ni el bloque signingConfigs.
6. Cuando la compilación de depuración pase, dame el comando para el bundle de release y enumera los valores que comprobará Google Play: targetSdk frente al requisito actual y versionCode frente a mi última subida.

Errores habituales

  • Pulsar "Upgrade" en cada aviso de Android Studio. El AGP Upgrade Assistant es útil entre versiones, no en mitad de una.
  • Subir con commit archivos de tu máquina. local.properties contiene la ruta de tu SDK y los keystores contienen tu identidad de publicación. Los dos van en .gitignore.
  • Perder la clave de subida. Con Play App Signing, Google guarda la clave de firma de la app y puedes solicitar un restablecimiento de la clave de subida. Sin copia de seguridad y sin Play App Signing, no puedes actualizar la app. Guarda hoy mismo una copia del keystore y sus contraseñas en un gestor de contraseñas.
  • Buscar y reemplazar para cambiar el paquete. Reemplazar texto en todo el proyecto, carpetas de compilación incluidas, produce errores que parecen no tener relación. Cambia el nombre con el IDE y luego busca restos.
  • Cambiar applicationId después de la primera subida. Google Play lo trata como una app distinta, sin instalaciones, sin valoraciones y sin forma de actualizar.
  • Esperar que una sesión en la nube compile Android. Claude Code en la web se ejecuta en una VM Linux con OpenJDK 21 y Gradle, pero sin el Android SDK, así que puede editar el proyecto pero no compilarlo sin configuración adicional. Compila en local o con el Cloud Builder.

Lista de comprobación antes de subir

  • HOST y HOME_URL en Config.java apuntan al dominio de producción.
  • applicationId es definitivo y coincide con la app de la Play Console.
  • versionCode incrementado y versionName definido.
  • targetSdk cumple el requisito actual de Google Play.
  • google-services.json coincide con el paquete, si usas Firebase.
  • Firmado con la clave de subida cuyo SHA-1 muestra la Play Console.
  • Subes un archivo .aab, no un APK.
  • assetlinks.json contiene el paquete y el SHA-256 de la firma de apps de Play, si usas App Links.

Preguntas frecuentes

¿Qué JDK debe usar el proyecto Android de WebViewGold?

El JDK incluido con Android Studio es la opción segura por defecto, porque es el que usa el IDE para Gradle. AGP 8 y posteriores necesitan como mínimo JDK 17; usa el mismo JDK en la terminal apuntando JAVA_HOME a él.

¿Por qué la compilación funciona en Android Studio pero no en Claude Code?

Casi siempre por un JDK distinto o por una ruta del SDK que falta en la terminal. Compara la salida de ./gradlew --version en ambos sitios y ajusta JAVA_HOME y sdk.dir en consecuencia.

He perdido mi keystore. ¿Puede Claude Code recuperarlo?

Nadie puede recuperar una clave perdida. Si tu app usa Play App Signing, solicita un restablecimiento de la clave de subida en la Play Console y crea una nueva clave de subida. Sin Play App Signing, una clave perdida significa una ficha de app nueva.

¿Tengo que actualizar WebViewGold por un nuevo requisito de targetSdk?

No es estrictamente necesario, pero suele ser el camino de menor riesgo, porque el proyecto actual ya usa versiones compatibles de Gradle y del plugin. Las actualizaciones son gratuitas y Claude Code puede trasladar tus ajustes.

¿Puedo compilar la app de Android sin Android Studio?

Sí. Con las herramientas de línea de comandos del Android SDK instaladas, ./gradlew bundleRelease compila desde la terminal. Sin ninguna configuración local, el Cloud Builder compila y sube la app desde el navegador.

Tres formas de llevar tu app a las tiendas

El mismo resultado, con distinta cantidad de trabajo por tu parte. Las tres incluyen la garantía de aprobación y soporte humano 24/7.

Hazlo tú mismo

$109 por plataforma, pago único

La licencia de WebViewGold: un proyecto de Xcode o Android Studio listo para usar. Pega tu URL, define nombre e icono, activa funciones, compila y envía. Actualizaciones gratuitas para siempre.

Ver planes en la página principal

Full Service

$698 por plataforma $798

Envíanos tu URL y tu icono. Nuestro equipo configura, compila y entrega tu app en 72 horas, en marca blanca y con los proyectos fuente. Ambas plataformas por $1,158.

Detalles del Full Service Con tecnología de WeSetupYourWebViewApp

Precios de la Oferta de invierno válidos hasta el 31 de diciembre de 2026.

¿Listo para lanzar tu app?

Garantía de aprobación en App Store & Google Play – o te devolvemos el dinero en 14 días

¿Prefieres delegarlo? Full Service: configuramos, compilamos y entregamos en 72 horas, desde $698 por plataforma. ¿Preguntas? Chatea con nosotros 24/7.

Los reembolsos se conceden bajo las condiciones indicadas en nuestras FAQ: un rechazo por motivos ajenos al contenido por parte de Apple y/o Google, reclamado dentro de los 14 días posteriores a la compra.