Corriger les erreurs de build Gradle Android du projet WebViewGold avec Claude Code
Les builds Android échouent généralement pour des raisons peu glorieuses : Gradle tourne sur le mauvais JDK, Android Studio est plus ancien que le plugin Gradle du projet, un renommage de package a oublié google-services.json, ou le bundle est signé avec une clé que Google Play n'attend pas. Claude Code peut lancer le wrapper Gradle, lire la stack trace et corriger rapidement la plupart de ces problèmes. Voici les erreurs, les commandes et les parties qui restent entre vos mains.
Dès $109 en paiement unique par plateforme, ou notre équipe s'occupe de tout dès $698.
Garantie d'approbation – ou remboursement sous 14 jours
Aucun codage requis
Paiement unique, mises à jour gratuites
Support humain 24/7
Conçu en Allemagne depuis 2014 · ISO 27001
9:41
Votre app
Votre appDésormais dans votre poche
App Store · Google Play Approuvée
Trois versions qui doivent s'accorder
Chaque build Android repose sur trois versions compatibles entre elles : le JDK qui exécute Gradle, la version de Gradle fixée dans gradle/wrapper/gradle-wrapper.properties, et le plugin Android Gradle (AGP) déclaré dans les fichiers de build. Par-dessus, compileSdk et targetSdk dans app/build.gradle exigent que la plateforme SDK correspondante soit installée. AGP 8 et les versions plus récentes exigent au moins le JDK 17.
Le piège classique : Android Studio compile avec son propre JDK intégré, alors que Claude Code dans le terminal utilise celui vers lequel pointe JAVA_HOME. C'est pour cela qu'un projet peut compiler sans problème dans l'IDE et échouer dans le shell de l'agent, ou l'inverse. Corrigez d'abord l'environnement. Mettre à jour AGP ou Gradle pour contourner un problème de JDK, c'est ainsi qu'un souci de dix minutes se transforme en week-end perdu.
Le projet Android WebViewGold est un projet Android Studio standard (le dossier téléchargé s'appelle AndroidStudioSource), configuré principalement dans Config.java et app/build.gradle, comme le montre la documentation d'installation Android.
Les commandes de diagnostic
Collez la sortie dans Claude Code, ou laissez l'agent lancer les commandes lui-même. Sous Windows, utilisez gradlew.bat au lieu 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
Erreurs, causes et corrections
Erreur (extrait)
Cause
Correction
Qui
Android Gradle plugin requires Java 17 to run. You are currently using Java 11.
Le terminal utilise un ancien JDK
Faites pointer JAVA_HOME vers le JDK intégré à Android Studio ou vers le JDK 17 ou 21. Dans l'IDE : Settings, Build, Execution, Deployment, Build Tools, Gradle, Gradle JDK
Claude (terminal), vous (réglage de l'IDE)
Unsupported class file major version 65
La version de Gradle est trop ancienne pour le JDK qui l'exécute (65 correspond à Java 21)
Lancez Gradle avec le JDK prévu pour le projet ; n'augmentez la version du wrapper que si le projet WebViewGold actuel le fait
Claude
Minimum supported Gradle version is …
Le wrapper est plus ancien que ce qu'exige la version d'AGP, souvent après une mise à jour involontaire d'AGP
Annulez la mise à jour d'AGP, ou réglez le wrapper sur la version indiquée dans l'erreur
Claude
The project is using an incompatible version (AGP …) of the Android Gradle plugin
Android Studio est plus ancien que le projet
Mettez Android Studio à jour ; ne rétrogradez pas le projet
Vous
SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable…
Les builds en ligne de commande ne savent pas où se trouve le SDK
Définissez sdk.dir dans local.properties (jamais commité) ou exportez ANDROID_HOME
Claude
Failed to find target with hash string 'android-36'
La plateforme SDK pour compileSdk n'est pas installée
Installez-la dans le SDK Manager ou avec sdkmanager "platforms;android-36"
Claude ou vous
Dependency '…' requires libraries and applications that depend on it to compile against version 36 or later
Une bibliothèque a été mise à jour au-delà du compileSdk du projet
Annulez la mise à jour de la bibliothèque, ou augmentez délibérément compileSdk et testez
Claude
No matching client found for package name 'com.example.app'
google-services.json appartient encore à l'ancien package après un renommage
Enregistrez le nouveau package dans Firebase, téléchargez un nouveau google-services.json et remplacez celui de app/
Vous (Firebase), Claude (fichier)
Keystore was tampered with, or password was incorrect
Mauvais mot de passe du keystore ou mauvais fichier keystore
Vérifiez keystore.properties vous-même ; ne collez jamais de mots de passe dans le chat
Vous
Play Console : Your Android App Bundle is signed with the wrong key
Signé avec une autre clé que la clé d'importation attendue par Google Play
Comparez les empreintes SHA-1 avec keytool -list -v -keystore your.jks ; retrouvez le bon keystore ou demandez une réinitialisation de la clé d'importation dans la Play Console
Vous
Play Console : Version code … has already been used
versionCode n'a pas été augmenté
Augmentez versionCode dans app/build.gradle
Claude
Play Console : You uploaded a debuggable APK or Android App Bundle
Un build de debug a été envoyé
Compilez avec bundleRelease et envoyez le .aab de app/build/outputs/bundle/release/
Claude
Play Console : erreur de niveau d'API cible
targetSdk est inférieur à l'exigence actuelle de Google
WebViewGold pour Android est livré avec le nom de package com.webviewgold.myappname, et la documentation de publication vous demande de sauvegarder le projet et de le renommer avant votre premier envoi (avec une vidéo pour le renommage complet et une autre pour raccourcir le nom). Trois identifiants sont concernés, et les agents ont tendance à n'en changer qu'un seul :
applicationId dans app/build.gradle : l'identité dans Google Play. Il doit être unique et ne peut plus jamais changer après le premier envoi ; voir choisissez-le une fois pour toutes.
namespace : le package des classes R et BuildConfig générées.
Le package Java des dossiers sources et la ligne package en haut de chaque fichier.
Renommez avec le refactoring que montre la vidéo, puis laissez Claude Code chercher les restes avec grep -rn "com.webviewgold.myappname" app/. Mettez à jour tout ce qui doit suivre le nouveau nom, y compris google-services.json pour Firebase et, si vous utilisez les App Links, le nom du package dans votre assetlinks.json. Ce fichier contient aussi une empreinte SHA-256 : avec Play App Signing, utilisez l'empreinte de la clé de signature de l'app affichée dans la Play Console, pas celle de votre clé d'importation.
Gardez la signature hors du dépôt
Si vous configurez la signature de release à partir de zéro, voici le modèle Android standard : les valeurs de signature viennent d'un fichier keystore.properties qui n'existe que sur votre machine. Faites-en une modification unique et relue (écrivez-la vous-même ou laissez Claude l'ajouter une fois), créez vous-même le keystore et le fichier properties, et gardez-les tous les deux hors de Git. Si votre projet a déjà un bloc signingConfigs qui fonctionne, n'y touchez pas.
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=...
La boucle de réparation
L'environnement d'abord, le projet ensuite, la signature en dernier.
Préparez la machine
Installez Android Studio et ouvrez le projet une fois, pour qu'il télécharge le SDK et crée local.properties. Lancez ensuite Claude Code dans le dossier qui contient gradlew.
Diagnostiquez
Collez le prompt ci-dessous. Claude relève les versions, lance un build de debug avec --stacktrace et nomme la première vraie erreur.
Corrigez l'environnement
Le JDK, le chemin du SDK et les plateformes SDK manquantes passent en premier. Ces corrections ne modifient pas un seul fichier du projet.
Corrigez le projet, a minima
Si une modification du projet est inévitable, l'agent propose le plus petit changement de version compatible et attend votre accord. Commitez-le séparément pour pouvoir l'annuler facilement.
Compilez le bundle de release
Lancez ./gradlew bundleRelease avec votre keystore en place, ou compilez-le dans Android Studio via Build, Generate Signed App Bundle.
Envoyez d'abord en test interne
Collez toute erreur de la Play Console dans Claude Code. Les nouveaux comptes développeur personnels doivent aussi passer par un test fermé avant la production ; voir l'exigence des 12 testeurs.
Le prompt de diagnostic
Le point 5 est le plus important : l'agent n'a jamais besoin de votre keystore ni de vos mots de passe pour corriger un build.
À coller dans Claude Code, dans le dossier du projet Android
Ce dossier est un projet Android WebViewGold (il contient gradlew). Le build échoue. Faites un diagnostic avant de modifier quoi que ce soit.
1. Lancez ./gradlew --version et java -version, affichez JAVA_HOME, et montrez : distributionUrl de gradle/wrapper/gradle-wrapper.properties, la version du plugin Android Gradle, compileSdk, targetSdk, minSdk, applicationId, namespace, versionCode et versionName.
2. Lancez ./gradlew assembleDebug --stacktrace et enregistrez la sortie dans build-debug.log.
3. Citez la première vraie erreur et expliquez-en la cause. Dites s'il s'agit d'un problème d'environnement (JDK, emplacement du SDK, plateforme SDK manquante) ou d'un problème de projet.
4. Privilégiez les corrections d'environnement. Ne mettez à jour ni le plugin Android Gradle, ni Gradle, ni Kotlin, ni aucune dépendance, sauf si l'erreur le rend inévitable ; dans ce cas, proposez le plus petit changement compatible et attendez mon accord.
5. N'ouvrez, n'affichez et ne modifiez jamais les fichiers keystore, keystore.properties, les mots de passe ni le bloc signingConfigs.
6. Quand le build de debug passe, donnez-moi la commande pour le bundle de release et listez les valeurs que Google Play vérifiera : targetSdk par rapport à l'exigence actuelle, et versionCode par rapport à mon dernier envoi.
Pièges
Cliquer sur « Upgrade » à chaque proposition d'Android Studio. L'AGP Upgrade Assistant est utile entre deux releases, pas au milieu de l'une d'elles.
Commiter des fichiers propres à la machine.local.properties contient le chemin de votre SDK, les keystores contiennent votre identité de publication. Les deux ont leur place dans .gitignore.
Perdre la clé d'importation. Avec Play App Signing, Google détient la clé de signature de l'app et vous pouvez demander une réinitialisation de la clé d'importation. Sans sauvegarde et sans Play App Signing, vous ne pouvez plus mettre l'app à jour. Sauvegardez dès aujourd'hui le keystore et ses mots de passe dans un gestionnaire de mots de passe.
Rechercher-remplacer pour renommer le package. Remplacer du texte dans tout le projet, dossiers de build compris, produit des erreurs qui semblent sans rapport. Renommez avec l'IDE, puis cherchez les restes.
Changer l'applicationId après le premier envoi. Google Play le traite comme une autre app, sans installations, sans avis et sans chemin de mise à jour.
Attendre d'une session cloud qu'elle compile Android. Claude Code sur le web tourne dans une VM Linux avec OpenJDK 21 et Gradle, mais sans le SDK Android : il peut modifier le projet, mais pas le compiler sans configuration supplémentaire. Compilez en local ou avec le Cloud Builder.
Checklist avant l'envoi
HOST et HOME_URL dans Config.java pointent vers le domaine de production.
L'applicationId est définitif et correspond à l'app dans la Play Console.
versionCode augmenté, versionName défini.
targetSdk respecte l'exigence actuelle de Google Play.
google-services.json correspond au package, si vous utilisez Firebase.
Signé avec la clé d'importation dont la Play Console affiche le SHA-1.
Vous envoyez un fichier .aab, pas un APK.
assetlinks.json liste le package et le SHA-256 de la clé de signature Play, si vous utilisez les App Links.
Questions fréquentes
Quel JDK le projet Android WebViewGold doit-il utiliser ?
Le JDK intégré à Android Studio est le choix sûr par défaut, car c'est celui que l'IDE utilise pour Gradle. AGP 8 et les versions plus récentes exigent au moins le JDK 17 ; utilisez le même JDK dans le terminal en faisant pointer JAVA_HOME vers lui.
Pourquoi le build fonctionne-t-il dans Android Studio mais pas dans Claude Code ?
Presque toujours à cause d'un JDK différent ou d'un chemin de SDK manquant dans le terminal. Comparez la sortie de ./gradlew --version aux deux endroits et réglez JAVA_HOME et sdk.dir en conséquence.
J'ai perdu mon keystore. Claude Code peut-il le récupérer ?
Personne ne peut récupérer une clé perdue. Si votre app utilise Play App Signing, demandez une réinitialisation de la clé d'importation dans la Play Console et créez une nouvelle clé d'importation. Sans Play App Signing, une clé perdue signifie une nouvelle fiche d'app.
Dois-je mettre WebViewGold à jour pour une nouvelle exigence targetSdk ?
Pas obligatoirement, mais c'est généralement le chemin le moins risqué, car le projet actuel utilise déjà des versions compatibles de Gradle et du plugin. Les mises à jour sont gratuites, et Claude Code peut reporter vos réglages.
Puis-je compiler l'app Android sans Android Studio ?
Oui. Avec les outils en ligne de commande du SDK Android installés, ./gradlew bundleRelease compile depuis le terminal. Sans aucune installation locale, le Cloud Builder compile et envoie l'app depuis le navigateur.
Trois façons de mettre votre app dans les stores
Même résultat, charge de travail différente de votre côté. Les trois formules incluent la garantie d'approbation et le support humain 24/7.
Faites-le vous-même
$109 par plateforme, paiement unique
La licence WebViewGold : un projet Xcode ou Android Studio prêt à l'emploi. Collez votre URL, définissez le nom et l'icône, activez les fonctionnalités, compilez et soumettez. Mises à jour gratuites à vie.
Ni Mac, ni Xcode, ni Android Studio : configurez dans le navigateur, nous compilons les deux apps dans le cloud et les transmettons à App Store Connect et à la Play Console.
Envoyez-nous votre URL et votre icône. Notre équipe configure, compile et livre votre app sous 72 heures, en marque blanche, projets sources inclus. Les deux plateformes pour $1,158.
Les remboursements sont accordés aux conditions indiquées dans notre FAQ : un refus non lié au contenu par Apple et/ou Google, demandé dans les 14 jours suivant l'achat.