Reputation: 2467
I'm encountering an issue while trying to build my Android project using AndroidX Compose. I'm getting the following error message:
androidx/compose/compiler/plugins/kotlin/ComposeComponentRegistrar has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
It seems that my current Java Runtime Environment (JRE) is outdated and does not support the class file version used by the AndroidX Compose library.
Environment details:
./gradlew -version | grep JVM
output: JVM: 17.0.6 (JetBrains s.r.o. 17.0.6+10-b802.4)
Based on note from here JDK 17 must work.
I would like to know the best way to resolve this issue. Should I update my JDK and JRE to a more recent version, or is there a way to use a compatible version of the AndroidX Compose library with my current JDK?
Any help or suggestions would be appreciated. Thanks!
Upvotes: 19
Views: 5547
Reputation: 175
Meanwhile you can also switch to ComposeCompiler 1.4.6 which depends again on Java 11 and works with Kotlin 1.8.20
Upvotes: 0
Reputation: 4527
I had this same problem and I was able to fix it by updating android studio to flamingo 2022.2.1, then it asked me to upgrade AGP to 8.0. After it completed, I set kotlin version to 1.8.20, kotlinCompilerExtensionVersion to 1.4.5 and both sourceCompatibility and targetCompatibility in compileOptions to JavaVersion.VERSION_17.
Upvotes: 1
Reputation: 1049
The only thing which worked for me was updating to Android Studio Flamingo and deleting all old Java installations. I removed everything which was listed in /usr/libexec/java_home -V
and mdfind -name 'java' | grep '/bin/java$'
that was not Java 17 and set the JDK inside Android Studio to the embedded one. After restarting AS and a project clean, the build succeeded.
Upvotes: 1
Reputation: 107
Check the NOTE here: Compose Compiler | Jetpack | Android Developers
So, if not using Java 17+ stick to Compose Compiler 1.4.4 & wait till 1.4.6 release for older Java version support.
Upvotes: 7
Reputation: 393
There are problems in: compose-compiler#1.4.5
You can temporarily fix editing these variables in the file .\gradle\libs.versions.toml until androidxComposeCompiler#1.4.6 will be published
Edit these variables in the file .\gradle\libs.versions.toml
androidxComposeCompiler = "1.4.4"
kotlin = "1.8.10"
ksp = "1.8.10-1.0.9"
Upvotes: 1
Reputation: 773
Use
kotlin {
jvmToolchain(17)
}
and
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
Checkout release notes: https://developer.android.com/jetpack/androidx/releases/compose-compiler#1.4.5
Upvotes: 1
Reputation: 163
Just use previous version of Compose (1.4.4) and Kotlin (1.8.10)
Upvotes: 5