You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Jetpack Compose项目构建时CheckDuplicatesRunnable错误求助

解决Android Jetpack Compose项目中的CheckDuplicatesRunnable构建错误

构建Jetpack Compose项目时,连续三天卡在以下构建错误上:

Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable

此前项目构建正常,直到引入FusedLocationProviderClient、LocationRequest、LiveData等定位相关类后出现该问题。根据资料,这类错误通常由同一库的不同版本冲突导致,Android生态的废弃机制使得不同版本间方法、属性差异极大,排查起来十分棘手。

项目的build.gradle.kts代码如下:

plugins {
    alias(libs.plugins.android.application)
    alias(libs.plugins.jetbrains.kotlin.android)
}

android {
    namespace = "com.albertoalvarezportero.autocontrol"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.albertoalvarezportero.autocontrol"
        minSdk = 24
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary = true
        }
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
    buildFeatures {
        compose = true
    }
    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.1"
    }
    packaging {
        resources {
            excludes += "/META-INF/{AL2.0,LGPL2.1}"
        }
    }
}

dependencies {
    implementation(libs.androidx.core.ktx)
    implementation(libs.androidx.lifecycle.runtime.ktx)
    implementation(libs.androidx.activity.compose)
    implementation(platform(libs.androidx.compose.bom))
    implementation(libs.androidx.ui)
    implementation(libs.androidx.ui.graphics)
    implementation(libs.androidx.ui.tooling.preview)
    implementation(libs.androidx.material3)
    implementation(libs.play.services.location)
    implementation(libs.compose.preview.renderer)
    testImplementation(libs.junit)
    androidTestImplementation(libs.androidx.junit)
    androidTestImplementation(libs.androidx.espresso.core)
    androidTestImplementation(platform(libs.androidx.compose.bom))
    androidTestImplementation(libs.androidx.ui.test.junit4)
    debugImplementation(libs.androidx.ui.tooling)
    debugImplementation(libs.androidx.ui.test.manifest)

    //Lifecycle ViewModel
    implementation(libs.androidx.lifecycle.viewmodel.compose){} // Correct ViewModel dependency
    implementation(libs.androidx.runtime.livedata)  // For LiveData in Compose
}

解决方案步骤

  • 排查依赖冲突
    执行Gradle命令查看完整依赖树,定位重复引入的库:

    ./gradlew app:dependencies
    

    重点关注androidx.lifecycle和com.google.android.gms:play-services-location相关依赖,这两类是引入定位功能后新增的,大概率是冲突来源。

  • 统一Lifecycle依赖版本
    项目使用了版本目录(libs.versions.toml),需确保所有androidx.lifecycle相关依赖使用同一版本。在libs.versions.toml中设置统一版本:

    [versions]
    androidx-lifecycle = "2.6.2"
    

    然后在libs.versions.toml的[libraries]块中,将所有lifecycle依赖指向该版本:

    [libraries]
    androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidx-lifecycle" }
    androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" }
    androidx-runtime-livedata = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "androidx-lifecycle" }
    
  • 排除Play Services Location的冲突依赖
    如果play-services-location引入了旧版本的lifecycle库,可在依赖声明中排除冲突组:

    implementation(libs.play.services.location) {
        exclude(group = "androidx.lifecycle")
    }
    
  • 清理重建项目
    执行清理命令后重启Android Studio,再重新构建:

    ./gradlew clean
    

内容的提问来源于stack exchange,提问作者Alberto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:30:08