Open larssn opened 2 months ago
Maybe Android Studio is using newer Java / Gradle / AGP / Gradle Kotlin plugin? I have no AS installed so I cannot reproduce it now. You can look into the detailed logs and (hopefully) find more specific information.
The workaround is similar to last time (#154): But instead adding (to your project build.gradle):
subprojects {
afterEvaluate {
if (project.plugins.hasPlugin("com.android.application")
|| project.plugins.hasPlugin("com.android.library")) {
if (project.name == "flutter_nfc_kit") {
project.android.compileOptions {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
}
}
}
}
And to your android
section in app build.gradle:
kotlin {
jvmToolchain(21)
}
Not sure what is going on, why this is needed, and why it's always this plugin, as its gradle settings seem perfectly reasonable.
Also, building with Android studio is possible without any workaround, for some reason.
I'm having the same problem here `Execution failed for task ':flutter_nfc_kit:compileDebugKotlin'.
Inconsistent JVM-target compatibility detected for tasks 'compileDebugJavaWithJavac' (11) and 'compileDebugKotlin' (17).`
would be cool to have a real fix for this issue and not only this workaround
I'm having the same problem, but when I set those configurations the error become "Unknown Kotlin JVM target: 21". anyone knows why?
The workaround is similar to last time (#154): But instead adding (to your project build.gradle):
subprojects { afterEvaluate { if (project.plugins.hasPlugin("com.android.application") || project.plugins.hasPlugin("com.android.library")) { if (project.name == "flutter_nfc_kit") { project.android.compileOptions { sourceCompatibility = JavaVersion.VERSION_21 targetCompatibility = JavaVersion.VERSION_21 } } } } }
And to your
android
section in app build.gradle:kotlin { jvmToolchain(21) }
Not sure what is going on, why this is needed, and why it's always this plugin, as its gradle settings seem perfectly reasonable.
Also, building with Android studio is possible without any workaround, for some reason.
I'm having the same problem, but when I set those configurations the error become "Unknown Kotlin JVM target: 21". anyone knows why?
The workaround is similar to last time (#154): But instead adding (to your project build.gradle):
subprojects { afterEvaluate { if (project.plugins.hasPlugin("com.android.application") || project.plugins.hasPlugin("com.android.library")) { if (project.name == "flutter_nfc_kit") { project.android.compileOptions { sourceCompatibility = JavaVersion.VERSION_21 targetCompatibility = JavaVersion.VERSION_21 } } } } }
And to your
android
section in app build.gradle:kotlin { jvmToolchain(21) }
Not sure what is going on, why this is needed, and why it's always this plugin, as its gradle settings seem perfectly reasonable. Also, building with Android studio is possible without any workaround, for some reason.
I am on the same scenario here. Can't build no matter what.
For workaround until this gets fixed, manually update the gradle.properties
& build.gradle
files in External Libraries -> Flutter Plugins -> flutter_nfc_kit
For gradle.properties
, change AGP version to 8.5.2
For build.gradle
:
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
@larssn I've just tried using your plugin in our pipeline after seeing your PR. Imported your plugin with:
flutter_nfc_kit:
git:
url: https://github.com/tillty/flutter_nfc_kit
Before using your plugin, we were getting this error:
Execution failed for task ':flutter_nfc_kit:compileReleaseKotlin'.
[ ] > Inconsistent JVM-target compatibility detected for tasks 'compileReleaseJavaWithJavac' (21) and 'compileReleaseKotlin' (17).
After changing it to your github fork, we got slightly different error, but still:
Execution failed for task ':flutter_nfc_kit:compileReleaseKotlin'.
[ ] > Inconsistent JVM-target compatibility detected for tasks 'compileReleaseJavaWithJavac' (21) and 'compileReleaseKotlin' (1.8).
Any ideas?
Do you have any workarounds forcefully specifying the kotlin toolchain?
Example:
kotlin {
jvmToolchain(21)
}
If so, try removing that, as gradle should be able to detect the correct settings to use.
I can compile without using a slightly different setting in build.gradle both in example/android/app and android/
android {
namespace 'im.nfc.flutter_nfc_kit'
compileSdkVersion 34
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
May be we need to specify the 8.8 instead of the 1.7 version for compatibility now.
Here's how I made it work for my situation. Keep the default options you get from a new project.
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
In my situation it was a mismatch versioning from Java and Gradle that was causing the issue.
Here for more info. https://docs.gradle.org/current/userguide/compatibility.html
I also found this dependency manager to work for me for managing gradle and Java versions. https://sdkman.io/
The exact version of Android Studio is
Build #AI-242.21829.142.2421.12409432, built on September 24, 2024
I can no longer compile a project that uses flutter_nfc_kit.
The compilation error is:
The funny part is that I've made no changes to the source project, AND am using VSCode to compile it. I can only assume that the latest Android Studio upgrade has changed the build environment.
I've tried a
flutter clean
to no avail.