Inconsistent JVM-target compatibility detected for tasks 'compileDebugJavaWithJavac' (17) and 'compileDebugKotlin' (1.8)
Java and Kotlin compile tasks target different JVM bytecode versions in the same module.
Seen on:
Android
Meaning
AGP 8 uses Java 17 toolchains while older templates set kotlinOptions.jvmTarget = "1.8". Set both to the same version (prefer a toolchain).
Common causes
- compileOptions and kotlinOptions/jvmTarget differ
- Library module with old settings
- JDK upgrade changed defaults
⚡ Quick fix
- Use kotlin { jvmToolchain(17) }
- Or set compileOptions and jvmTarget to the same version in every module
Detailed fix by platform
Gradle
- kotlin
kotlin { jvmToolchain(17) } android { compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } }
How to diagnose
- Module — Which module?
- Settings — compileOptions vs jvmTarget
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- Android resource linking failed AAPT: error: resource x (aka y) not found — Android resource linking failed
- android:attr/lStar not found AAPT: error: resource android:attr/lStar not found
- Cannot fit requested classes in a single dex file Cannot fit requested classes in a single dex file (# methods: 65536 > 65536) — mergeDex failed
Most viewed in Android
Other ways to find it
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 7 Oct 2026