最近在升級專案使用的 flutter 到 3.27,也升級了AGP,遇到各種問題。
先是有套件是沒有在 gradle 放 namespace,丟了 PR 也不理,只好自己 fork。
然後不知道為什麼,沒放 jvmTarget 的套件也會有相容性問題,就隨便給他指定一個低的。
allprojects {
tasks.withType(KotlinCompile).configureEach {
kotlinOptions {
if (jvmTarget == null) {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
}
}
然後其他的事讓 toolchain 處理。
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
然後怪事就來了,flutter_statusbarcolor_ns 這個套件不知道為什麼,toolchain 指定 21 的時候會跟你說沒辦法跟 17 相容,指定 17 的時候又會跳 class file has wrong version 65.0, should be 61.0,後來實在搞不定,最後只好在 gradle.properties 加個設定忽略這個檢查。
kotlin.jvm.target.validation.mode = IGNORE
有空再研究為什麼。
發佈留言