前沿

最近在死磕 Gitlab CI/CD,遇到的问题实在是多,还好现在都有各种 AI 了,不然真是难顶。

BuildFusService 报错

android gitlab ci 运行时报错:

Could not isolate value org.jetbrains.kotlin.gradle.plugin.statistics.BuildFusService$Parameters_Decorated@78a1d7cb of type BuildFusService.Parameters
> Failed to query the value of property 'configurationMetrics' java.util.ConcurrentModificationException (no error message)

忘记是一直是这个问题,还是还有其他类似的问题,反正就是BuildFusService 这个玩意报错。而且确实是 kotlin 中的问题。

可以看看这几个链接:Gradle: Performance regression in BuildFusService
Gradle: Add option to disable FUS Service
Gradle dependency submission fails with ConcurrentModificationException

然后 ChatGPT 也给出了很多建议,比如:

  variables:
    GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.parallel=false -Dorg.gradle.configuration-cache=false -Dorg.jetbrains.kotlin.gradle.plugin.statistics.collectStatistics=false -Dkotlin.internal.statistics.enable=false -Dkotlin.internal.collectFUSMetrics=false -Dkotlin.build.report.enable=false"

又或者是在 gradle .properties中配置:

kotlin.internal.build.report.fus.enabled=false
# disable domain
org.gradle.parallel=false
org.gradle.configuration-cache=false
org.gradle.configuration-cache.problems=warn
# Kotlin close analytics
kotlin.build.report.enable=false
kotlin.build.analytics.enabled=false
kotlin.build.report.fus.enabled=false
kotlin.internal.statistics.enable=false
kotlin.internal.collectFUSMetrics=false

又说要在 build.gradle.kts 中:

kotlinOptions {
        jvmTarget = "17"
        freeCompilerArgs += listOf(
            "-Xjsr305=strict"
        )
    }

还是说要在 settinngs.gradle.kts 中:

// gitlab CI 中,防止 BuildFusService 注册
gradle.rootProject {
    extra["kotlin.build.report.enable"] = false
    extra["kotlin.build.report.fus.enable"] = false
    extra["kotlin.build.analytics.enabled"] = false
}

发现都没有用。最后就只有一条路了,修改版本号 !

[versions]
agp = "8.5.0"
kotlin = "1.9.25"

build.gradle.kts 中:

compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = "17"
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15" // 需配合kotlin版本
    }

运行后,就搞定了。

Logo

科技之力与好奇之心,共建有温度的智能世界

更多推荐