SECURITY WARNING: Never run commands you don't understand. Always review code before execution. Use at your own risk.
Mobile New Added 17 October 2026

Android Gradle plugin requires Java 17 to run. You are currently using Java 11

AGP 8 needs JDK 17 to run Gradle itself, separate from the Java version your app code targets. Android Studio bundles a suitable JDK, which is why the build works in the IDE and fails on the command line or in CI, where JAVA_HOME still points at Java 11. Raising sourceCompatibility does nothing here: it is the JDK running Gradle that has to change.

Quick fix

Read the commands before running them. Anything that restarts a service, deletes data or changes permissions should be tried on a non-production system first.

Quick fix
# Which JDK does Gradle actually use?
./gradlew --version | grep -E "JVM|Daemon"
echo "$JAVA_HOME"; java -version

# Point the command line at a JDK 17 (or the one bundled with Android Studio)
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
# macOS: export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"

# Or pin it for this project only
echo 'org.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64' >> gradle.properties

# GitHub Actions
# - uses: actions/setup-java@v4
#   with: { distribution: temurin, java-version: 17 }

./gradlew --stop && ./gradlew assembleDebug

How to diagnose Mobile errors

Mobile build errors are overwhelmingly toolchain and dependency version conflicts rather than code problems. Android builds fail on Gradle, JDK and Android Gradle Plugin version combinations; iOS builds fail on code signing, provisioning profiles and CocoaPods lockfile drift. The productive instinct is to check version compatibility matrices before reading stack traces.

If the quick fix above does not resolve it, work through these steps. They apply to this whole class of error, not just to this one message, which is usually what saves the time.

  1. Run the build with full output: ./gradlew assembleDebug --stacktrace --info. Gradle's default output hides the actual failing task.
  2. Verify the JDK the build is using (./gradlew -version), not the one on your PATH. Android Gradle Plugin has strict JDK requirements.
  3. For CocoaPods, run pod install, not pod update, after pulling changes, and open the .xcworkspace rather than the .xcodeproj.
  4. For code signing, check the provisioning profile's expiry, bundle identifier and device list in Xcode's Signing & Capabilities tab before touching certificates.
  5. Clear caches only as a last resort and one at a time (./gradlew clean, rm -rf ~/Library/Developer/Xcode/DerivedData, watchman watch-del-all), so you learn which one mattered.

Tools worth reaching for

  • ./gradlew --stacktrace --info
  • pod install
  • xcodebuild -showBuildSettings
  • flutter doctor -v
  • adb logcat

Authoritative references

Primary documentation for this error, worth reading before applying any fix in production.

developer.android.com docs.gradle.org

Related Mobile errors

See all 20 Mobile errors →

Browse other categories

Something missing or wrong?

This entry is maintained by hand. If the fix is out of date, incomplete, or you have a better one, email a correction and it will be reviewed.