標籤: AGP

  • Flutter 跳兩個版

    最近在升級專案使用的 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

    有空再研究為什麼。