skip icon indicating copy to clipboard operation
skip copied to clipboard

> Inconsistent JVM-target compatibility detected for tasks 'compileDebugJavaWithJavac' (21) and 'compileDebugKotlin' (17).

Open hemal08ce094 opened this issue 1 year ago • 4 comments

Hello Team,

i am trying hello world app with Skip. i m stuck on the build script for android it throws this error.

Inconsistent JVM-target compatibility detected for tasks 'compileDebugJavaWithJavac' (21) and 'compileDebugKotlin' (17). Screenshot 2024-06-19 at 10 16 54 PM Screenshot 2024-06-19 at 10 18 25 PM

Attached is Error I get and build script file for android. i have android studio installed on my Mac M1 Pro machine. there is no modification done from my side. This is just a Hello World app. Check goes through fine. i don't get any error on that part.

hemal08ce094 avatar Jun 19 '24 18:06 hemal08ce094

Inconsistent JVM-target compatibility detected for tasks 'compileDebugJavaWithJavac' (21) and 'compileDebugKotlin' (17).

I think that might be a red herring. Since skip checkup passed for you, your system should have the correct JVM installed.

The other error message in the log might be the more salient one:

No connected Android devices or emulators were reported by 'adb devices'. To launch the Skip app, start an emulator from the Android Studio Device Manager or use the ~/Library/Android/sdk/emulator/emulator command

Have you launched an Android emulator, as per https://skip.tools/docs/app-development/#building-and-running ? If not, can you do so and then try again, and let us know if you still get errors?

marcprux avatar Jun 20 '24 00:06 marcprux

Tried by keeping android emulator open. it throws same error. tried setting path for java home to 17, but not sure from where its picking up 21.
Screenshot 2024-06-20 at 8 21 58 AM

hemal08ce094 avatar Jun 20 '24 04:06 hemal08ce094

So "skip checkup" passes? Do you have JAVA_HOME set in your environment? What does the following Terminal command output?

echo $JAVA_HOME

aabewhite avatar Jun 20 '24 13:06 aabewhite

Can you try editing the Android/app/build.gradle.kts file in Xcode and adding the following clause to the android { } block:

    kotlinOptions {
        jvmTarget = libs.versions.jvm.get().toString()
    }

So, for example, it looks like this:

android {
    namespace = group as String
    compileSdk = libs.versions.android.sdk.compile.get().toInt()
    compileOptions {
        sourceCompatibility = JavaVersion.toVersion(libs.versions.jvm.get())
        targetCompatibility = JavaVersion.toVersion(libs.versions.jvm.get())
    }
    kotlinOptions {
        jvmTarget = libs.versions.jvm.get().toString()
    }

and then try running the project again? That may be all it it needs to force it to use the correct JVM target.

marcprux avatar Jun 21 '24 19:06 marcprux

This was addressed some time ago in the Skip Gradle plugin.

marcprux avatar Oct 21 '25 14:10 marcprux