flutter 错误信息:
Inconsistent JVM-target compatibility detected for tasks 'compileDebugJavaWithJavac' (1.8) and 'compileDebugKotlin' (17).
办理方法:
不用更改android的plugin,由于题目根本没出在这里,网上的答案都是错误的
不用更改android的plugin,由于题目根本没出在这里,网上的答案都是错误的
不用更改android的plugin,由于题目根本没出在这里,网上的答案都是错误的
你只必要强制所有的包指定Kotlin版本即可。
更改android目录下的build.gradle:
- allprojects {
- repositories {
- gradlePluginPortal()
- google()
- mavenCentral()
- }
- // 修复由于高版本导致namespace检测为空的问题,没遇到可不添加
- subprojects {
- afterEvaluate { project ->
- if (project.hasProperty('android')) {
- project.android {
- if (namespace == null) {
- namespace project.group
- }
- }
- }
- }
- }
- // 修复由于高版本导致namespace检测为空的问题,没遇到可不添加
- // 强制指定Kotilin版本
- subprojects {
- project.buildDir = "${rootProject.buildDir}/${project.name}"
- afterEvaluate {
- if (it.hasProperty('android')) {
- if (it.android.namespace == null) {
- def manifest = new XmlSlurper().parse(file(it.android.sourceSets.main.manifest.srcFile))
- def packageName = manifest.@package.text()
- // println("Setting ${packageName} as android namespace")
- android.namespace = packageName
- }
- // 指定Kotilin版本
- def javaVersion = JavaVersion.VERSION_17
- android {
- compileOptions {
- sourceCompatibility javaVersion
- targetCompatibility javaVersion
- }
- tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
- kotlinOptions {
- jvmTarget = javaVersion.toString()
- }
- }
- // println("Setting java version to ${javaVersion.toString()} which is $javaVersion")
- }
- }
- }
- }
- // 强制指定Kotilin版本
-
- subprojects {
- project.evaluationDependsOn(':app')
- }
- }
复制代码 它会指定所有子项目Kotlin利用的版本为17,其他版本对照修改即可。
参考资料:https://github.com/flutter/flutter/issues/125181
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |