Android-Gradle-Build-Fehler im WebViewGold-Projekt mit Claude Code beheben
Android-Builds scheitern meist an unspektakulären Gründen: Gradle läuft mit dem falschen JDK, Android Studio ist älter als das Gradle-Plugin des Projekts, bei der Umbenennung des Packages wurde google-services.json vergessen, oder das Bundle ist mit einem Schlüssel signiert, den Google Play nicht erwartet. Claude Code kann den Gradle Wrapper ausführen, den Stacktrace lesen und die meisten dieser Probleme schnell beheben. Hier sind die Fehler, die Befehle und die Teile, die bei dir bleiben.
Ab $109 einmalig pro Plattform, oder unser Team erledigt alles ab $698.
Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen
Kein Programmieren nötig
Einmalzahlung, kostenlose Updates
24/7 Support von echten Menschen
Made in Germany seit 2014 · ISO 27001
9:41
Deine App
Deine AppJetzt auf dem Smartphone
App Store · Google Play Freigegeben
Drei Versionen, die zusammenpassen müssen
Jeder Android-Build hängt davon ab, dass drei Versionen zusammenpassen: das JDK, mit dem Gradle läuft, die Gradle-Version, die in gradle/wrapper/gradle-wrapper.properties festgelegt ist, und das Android Gradle Plugin (AGP), das in den Build-Dateien deklariert ist. Außerdem muss für compileSdk und targetSdk in app/build.gradle die passende SDK-Plattform installiert sein. AGP 8 und neuer brauchen mindestens JDK 17.
Die klassische Falle: Android Studio baut mit seinem eigenen mitgelieferten JDK, während Claude Code im Terminal das nutzt, worauf JAVA_HOME zeigt. Deshalb kann ein Projekt in der IDE problemlos bauen und in der Shell des Agenten scheitern, oder umgekehrt. Bring zuerst die Umgebung in Ordnung. Wer AGP oder Gradle aktualisiert, um ein JDK-Problem zu umgehen, macht aus einem Zehn-Minuten-Problem ein ganzes Wochenende.
Das WebViewGold-Android-Projekt ist ein normales Android-Studio-Projekt (der Download-Ordner heißt AndroidStudioSource), das hauptsächlich über Config.java und app/build.gradle konfiguriert wird, wie die Android-Setup-Dokumentation zeigt.
Die Diagnosebefehle
Füge die Ausgabe in Claude Code ein oder lass den Agenten die Befehle selbst ausführen. Unter Windows nimmst du gradlew.bat statt ./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
Fehler, Ursachen und Fixes
Fehler (Auszug)
Ursache
Fix
Wer
Android Gradle plugin requires Java 17 to run. You are currently using Java 11.
Das Terminal nutzt ein altes JDK
Setze JAVA_HOME auf das mit Android Studio mitgelieferte JDK oder auf JDK 17 oder 21. In der IDE: Settings, Build, Execution, Deployment, Build Tools, Gradle, Gradle JDK
Claude (Terminal), du (IDE-Einstellung)
Unsupported class file major version 65
Die Gradle-Version ist zu alt für das JDK, mit dem sie läuft (65 ist Java 21)
Gradle mit dem JDK ausführen, für das das Projekt gemacht ist; die Wrapper-Version nur anheben, wenn das aktuelle WebViewGold-Projekt das auch tut
Claude
Minimum supported Gradle version is …
Der Wrapper ist älter, als die AGP-Version verlangt, oft nach einem versehentlichen AGP-Upgrade
Das AGP-Upgrade rückgängig machen oder den Wrapper auf die im Fehler genannte Version setzen
Claude
The project is using an incompatible version (AGP …) of the Android Gradle plugin
Android Studio ist älter als das Projekt
Android Studio aktualisieren; das Projekt nicht downgraden
Du
SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable…
Builds über die Kommandozeile wissen nicht, wo das SDK liegt
sdk.dir in local.properties setzen (nie committen) oder ANDROID_HOME exportieren
Claude
Failed to find target with hash string 'android-36'
Die SDK-Plattform für compileSdk ist nicht installiert
Im SDK Manager installieren oder mit sdkmanager "platforms;android-36"
Claude oder du
Dependency '…' requires libraries and applications that depend on it to compile against version 36 or later
Eine Bibliothek wurde über das compileSdk des Projekts hinaus aktualisiert
Das Upgrade der Bibliothek rückgängig machen oder compileSdk bewusst anheben und testen
Claude
No matching client found for package name 'com.example.app'
google-services.json gehört nach einer Umbenennung noch zum alten Package
Das neue Package in Firebase registrieren, eine neue google-services.json herunterladen und die Datei in app/ ersetzen
Du (Firebase), Claude (Datei)
Keystore was tampered with, or password was incorrect
Falsches Store-Passwort oder falsche Keystore-Datei
Prüfe keystore.properties selbst; füge nie Passwörter in den Chat ein
Du
Play Console: Your Android App Bundle is signed with the wrong key
Mit einem anderen Schlüssel signiert als dem Upload-Schlüssel, den Google Play erwartet
SHA-1-Fingerprints mit keytool -list -v -keystore your.jks vergleichen; den richtigen Keystore finden oder in der Play Console das Zurücksetzen des Upload-Schlüssels beantragen
Du
Play Console: Version code … has already been used
versionCode wurde nicht erhöht
versionCode in app/build.gradle erhöhen
Claude
Play Console: You uploaded a debuggable APK or Android App Bundle
Ein Debug-Build wurde hochgeladen
Mit bundleRelease bauen und die .aab aus app/build/outputs/bundle/release/ hochladen
Claude
Play Console: Fehler zum Ziel-API-Level
targetSdk liegt unter der aktuellen Anforderung von Google
Das Package umbenennen, ohne den Build zu zerstören
WebViewGold für Android wird mit dem Package-Namen com.webviewgold.myappname ausgeliefert, und die Dokumentation zur Veröffentlichung bittet dich, das Projekt zu sichern und es vor deinem ersten Upload umzubenennen (mit einem Video für die vollständige Umbenennung und einem zum Kürzen des Namens). Drei Kennungen sind beteiligt, und Agenten ändern gern nur eine davon:
applicationId in app/build.gradle: die Identität bei Google Play. Sie muss eindeutig sein und kann sich nach dem ersten Upload nie mehr ändern; siehe einmal festlegen.
namespace: das Package der generierten Klassen R und BuildConfig.
Das Java-Package der Quellordner und die package-Zeile am Anfang jeder Datei.
Benenne mit dem Refactoring um, das das Video zeigt, und lass Claude Code dann mit grep -rn "com.webviewgold.myappname" app/ nach Überbleibseln suchen. Aktualisiere alles, was dem neuen Namen folgen soll, auch google-services.json für Firebase und, wenn du App Links nutzt, den Package-Namen in deiner assetlinks.json. Diese Datei enthält auch einen SHA-256-Fingerprint: Mit Play App Signing nimmst du den Fingerprint des App-Signaturschlüssels aus der Play Console, nicht den deines Upload-Schlüssels.
Halte die Signierung aus dem Repository heraus
Wenn du die Release-Signierung von Grund auf einrichtest, ist das hier das Standardmuster unter Android: Die Signing-Werte kommen aus einer Datei keystore.properties, die nur auf deinem Rechner existiert. Mach daraus eine einmalige, geprüfte Änderung (schreib sie selbst oder lass Claude sie einmal hinzufügen), erstelle Keystore und Properties-Datei selbst und halte beide aus Git heraus. Hat dein Projekt schon einen funktionierenden signingConfigs-Block, lass ihn in Ruhe.
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=...
Die Reparaturschleife
Erst die Umgebung, dann das Projekt, zuletzt die Signierung.
Den Rechner vorbereiten
Installiere Android Studio und öffne das Projekt einmal, damit es das SDK herunterlädt und local.properties anlegt. Starte dann Claude Code in dem Ordner, der gradlew enthält.
Diagnostizieren
Füge den Prompt unten ein. Claude sammelt die Versionen, führt einen Debug-Build mit --stacktrace aus und benennt den ersten echten Fehler.
Die Umgebung reparieren
JDK, SDK-Pfad und fehlende SDK-Plattformen kommen zuerst. Diese Fixes ändern keine einzige Projektdatei.
Das Projekt minimal reparieren
Ist eine Änderung am Projekt unvermeidbar, schlägt der Agent die kleinste kompatible Versionsänderung vor und wartet auf dein OK. Committe sie separat, damit du sie leicht zurücknehmen kannst.
Das Release-Bundle bauen
Führe ./gradlew bundleRelease mit deinem Keystore aus oder bau es in Android Studio über Build, Generate Signed App Bundle.
Zuerst in den internen Test hochladen
Füge jeden Fehler aus der Play Console in Claude Code ein. Neue private Entwicklerkonten brauchen außerdem einen geschlossenen Test vor der Produktion; siehe die Anforderung mit 12 Testern.
Der Diagnose-Prompt
Punkt 5 ist der wichtigste: Um einen Build zu reparieren, braucht der Agent nie deinen Keystore oder deine Passwörter.
In Claude Code im Ordner des Android-Projekts einfügen
Dieser Ordner ist ein WebViewGold-Android-Projekt (er enthält gradlew). Der Build schlägt fehl. Diagnostiziere, bevor du etwas änderst.
1. Führe ./gradlew --version und java -version aus, gib JAVA_HOME aus und zeig mir: distributionUrl aus gradle/wrapper/gradle-wrapper.properties, die Version des Android Gradle Plugins, compileSdk, targetSdk, minSdk, applicationId, namespace, versionCode und versionName.
2. Führe ./gradlew assembleDebug --stacktrace aus und speichere die Ausgabe in build-debug.log.
3. Zitiere den ersten echten Fehler und erkläre die Ursache. Sag, ob es ein Problem der Umgebung (JDK, SDK-Pfad, fehlende SDK-Plattform) oder des Projekts ist.
4. Bevorzuge Fixes an der Umgebung. Aktualisiere weder das Android Gradle Plugin noch Gradle, Kotlin oder irgendeine Abhängigkeit, außer der Fehler macht es unvermeidbar; schlag in diesem Fall die kleinste kompatible Änderung vor und warte auf mein OK.
5. Öffne, zeige oder ändere niemals Keystore-Dateien, keystore.properties, Passwörter oder den signingConfigs-Block.
6. Wenn der Debug-Build durchläuft, gib mir den Befehl für das Release-Bundle und liste die Werte auf, die Google Play prüft: targetSdk im Vergleich zur aktuellen Anforderung und versionCode im Vergleich zu meinem letzten Upload.
Fallstricke
Bei jedem Hinweis in Android Studio auf "Upgrade" klicken. Der AGP Upgrade Assistant ist zwischen Releases nützlich, nicht mitten in einem.
Rechnerspezifische Dateien committen.local.properties enthält deinen SDK-Pfad, Keystores enthalten deine Identität als Publisher. Beides gehört in die .gitignore.
Den Upload-Schlüssel verlieren. Mit Play App Signing verwahrt Google den App-Signaturschlüssel, und du kannst das Zurücksetzen des Upload-Schlüssels beantragen. Ohne Backup und ohne Play App Signing kannst du die App nicht mehr aktualisieren. Sichere den Keystore und seine Passwörter noch heute in einem Passwortmanager.
Suchen und Ersetzen für die Package-Umbenennung. Text im ganzen Projekt zu ersetzen, inklusive der Build-Ordner, erzeugt Fehler, die scheinbar nichts damit zu tun haben. Benenne mit der IDE um und such danach nach Überbleibseln.
Die applicationId nach dem ersten Upload ändern. Google Play behandelt das als andere App, ohne Installationen, ohne Bewertungen und ohne Update-Pfad.
Erwarten, dass eine Cloud-Session Android baut. Claude Code im Web läuft in einer Linux-VM mit OpenJDK 21 und Gradle, aber ohne Android SDK; es kann das Projekt also bearbeiten, aber ohne zusätzliches Setup nicht bauen. Bau lokal oder mit dem Cloud Builder.
Checkliste vor dem Upload
HOST und HOME_URL in Config.java zeigen auf die Produktionsdomain.
Die applicationId ist endgültig und passt zur App in der Play Console.
versionCode erhöht, versionName gesetzt.
targetSdk erfüllt die aktuelle Anforderung von Google Play.
google-services.json passt zum Package, falls du Firebase nutzt.
Signiert mit dem Upload-Schlüssel, dessen SHA-1 die Play Console anzeigt.
Du lädst eine .aab-Datei hoch, kein APK.
assetlinks.json enthält das Package und den SHA-256 der Play-App-Signatur, falls du App Links nutzt.
Häufig gestellte Fragen
Welches JDK sollte das WebViewGold-Android-Projekt nutzen?
Das mit Android Studio mitgelieferte JDK ist der sichere Standard, weil die IDE genau dieses für Gradle verwendet. AGP 8 und neuer brauchen mindestens JDK 17; nutze im Terminal dasselbe JDK, indem du JAVA_HOME darauf setzt.
Warum klappt der Build in Android Studio, aber nicht in Claude Code?
Fast immer wegen eines anderen JDK oder eines fehlenden SDK-Pfads im Terminal. Vergleiche die Ausgabe von ./gradlew --version an beiden Orten und setze JAVA_HOME und sdk.dir entsprechend.
Ich habe meinen Keystore verloren. Kann Claude Code ihn wiederherstellen?
Einen verlorenen Schlüssel kann niemand wiederherstellen. Nutzt deine App Play App Signing, beantrage in der Play Console das Zurücksetzen des Upload-Schlüssels und erstelle einen neuen Upload-Schlüssel. Ohne Play App Signing bedeutet ein verlorener Schlüssel einen neuen App-Eintrag.
Muss ich WebViewGold für eine neue targetSdk-Anforderung aktualisieren?
Nicht zwingend, aber meist ist das der Weg mit dem geringsten Risiko, weil das aktuelle Projekt schon kompatible Versionen von Gradle und Plugin nutzt. Updates sind kostenlos, und Claude Code kann deine Einstellungen übernehmen.
Kann ich die Android-App ohne Android Studio bauen?
Ja. Mit den installierten Command-Line-Tools des Android SDK baut ./gradlew bundleRelease aus dem Terminal. Ganz ohne lokales Setup kompiliert der Cloud Builder die App im Browser und lädt sie hoch.
Drei Wege, deine App in die Stores zu bringen
Gleiches Ergebnis, unterschiedlich viel Arbeit auf deiner Seite. Alle drei kommen mit Genehmigungsgarantie und 24/7 Support von echten Menschen.
Selbst machen
$109 pro Plattform, einmalig
Die WebViewGold-Lizenz: ein fertiges Xcode- oder Android-Studio-Projekt. URL einfügen, Name und Icon setzen, Features einschalten, bauen und einreichen. Kostenlose Updates für immer.
Kein Mac, kein Xcode, kein Android Studio: Du konfigurierst im Browser, wir bauen beide Apps in der Cloud und übergeben sie an App Store Connect und die Play Console.
Schick uns deine URL und dein Icon. Unser Team konfiguriert, baut und liefert deine App innerhalb von 72 Stunden, White-Label, inklusive Quellprojekten. Beide Plattformen für $1,158.
Erstattungen erfolgen zu den in unseren FAQ genannten Bedingungen: eine nicht inhaltsbedingte Ablehnung durch Apple und/oder Google, geltend gemacht innerhalb von 14 Tagen nach dem Kauf.