添加依赖后Kotlin应用无法运行,依赖解析失败求助
问题描述
尝试用Coroutines、Dagger Hilt和MVVM构建Android应用,添加依赖后运行时出现以下错误:
Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
项目可正常执行clean操作,但运行时触发该错误。
项目配置文件
根目录build.gradle.kts
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { dependencies { classpath("com.google.gms:google-services:4.4.1") } } plugins { id("com.android.application") version "8.2.2" apply false id("org.jetbrains.kotlin.android") version "1.8.0" apply false id("com.google.dagger.hilt.android") version "2.44" apply false }
app模块build.gradle
plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("com.google.dagger.hilt.android") id("kotlin-kapt") } android { namespace = "com.example.tweetify" compileSdk = 34 compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } defaultConfig { applicationId = "com.example.tweetify" 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.4.0" } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } } dependencies { implementation("androidx.core:core-ktx:1.12.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0") implementation("androidx.activity:activity-compose:1.8.2") implementation(platform("androidx.compose:compose-bom:2023.08.00")) implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-graphics") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.compose.material3:material3") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") androidTestImplementation(platform("androidx.compose:compose-bom:2023.08.00")) androidTestImplementation("androidx.compose.ui:ui-test-junit4") debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-test-manifest") // hilt implementation("com.google.dagger:hilt-android:2.48") kapt("com.google.dagger:hilt-android-compiler:2.28-alpha") // ViewModels implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0") implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") // Coroutines implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:2.7.0") implementation("org.jetbrains.kotlinx.kotlinx-coroutines-android:2.7.0") // Retrofit implementation("com.squareup.retrofit2:retrofit:2.9.0") implementation("com.squareup.retrofit2:converter-gson:2.9.0") // Navigation implementation("androidx.navigation:navigation-compose:2.7.7") implementation("androidx.hilt:hilt-navigation-compose:2.7.7") }
解决方法
配置中的版本不匹配、依赖路径错误是导致依赖解析失败的核心原因,按以下步骤修复:
1. 统一Hilt版本
根目录Hilt插件版本与app模块Hilt依赖版本不一致,且注解处理器版本过时,全部统一为2.48:
- 修改根目录
build.gradle.kts:
plugins { // ...其他插件 id("com.google.dagger.hilt.android") version "2.48" apply false }
- 修改app模块依赖:
// hilt implementation("com.google.dagger:hilt-android:2.48") kapt("com.google.dagger:hilt-android-compiler:2.48")
2. 修正Coroutines依赖路径
安卓端Coroutines依赖路径写错,同时降级到与Kotlin 1.8.0兼容的稳定版本:
// Coroutines implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
3. 匹配Kotlin与Compose Compiler版本
Kotlin 1.8.0对应Compose Compiler版本应为1.4.3,修改app模块配置:
composeOptions { kotlinCompilerExtensionVersion = "1.4.3" }
4. 同步并清理项目
完成修改后:
- 执行
File > Sync Project with Gradle Files - 执行
Build > Clean Project+Build > Rebuild Project
内容的提问来源于stack exchange,提问作者Shubhankar Pande
相关产品推荐
相关产品推荐

