构建KMM项目后原AGP 8.0.2项目无法编译的问题求助
问题分析与解决方案
问题本质
io.ktor:ktor-client-darwin:2.3.1是仅适配苹果平台(iOS/macOS等)的依赖,Android环境下不存在对应的编译变体,因此会出现解析失败。问题源于打开KMM示例项目后,Gradle缓存或配置被污染,导致项目A的KMM共享模块错误地将该依赖引入了Android编译路径。
解决步骤
1. 修正共享模块的依赖配置
打开项目A的shared/build.gradle.kts(或Groovy版build.gradle),确保ktor-client-darwin仅在苹果平台源集中声明,Android源集使用对应平台的Ktor依赖:
sourceSets { // 苹果平台源集(以iOS为例) val iosMain by getting { dependencies { implementation("io.ktor:ktor-client-darwin:2.3.1") } } // Android平台源集 val androidMain by getting { dependencies { // 使用Android端专用的Ktor客户端依赖 implementation("io.ktor:ktor-client-android:2.3.1") } } }
2. 彻底清理Gradle缓存
执行以下命令清理项目缓存并强制重新构建:
# macOS/Linux ./gradlew clean build --no-build-cache # Windows gradlew.bat clean build --no-build-cache
也可以手动删除全局Gradle缓存目录:
- macOS/Linux:
~/.gradle/caches - Windows:
C:\Users\<你的用户名>\.gradle\caches
3. 重新同步项目
在Android Studio中点击File -> Sync Project with Gradle Files,确保配置同步生效。
4. 确认AGP与Kotlin版本兼容
AGP 8.0.2需要搭配Kotlin 1.8.20及以上版本,检查项目根目录的build.gradle.kts:
plugins { id("com.android.application") version "8.0.2" apply false id("org.jetbrains.kotlin.android") version "1.8.20" apply false id("org.jetbrains.kotlin.multiplatform") version "1.8.20" apply false }
内容的提问来源于stack exchange,提问作者musako
相关产品推荐
相关产品推荐

