Kotlin Multiplatform项目iOS端运行失败问题求助
Kotlin Multiplatform iOS端编译失败修复方案
环境信息
- macOS Sonoma 14.6.1
- Xcode 15.4
- 未修改的KMP模板项目(Android端正常运行,iOS端编译失败;单独Xcode创建的iOS项目可正常运行)
编译错误核心信息
配置根项目'TestKMP'时出现问题。 > 无法解析配置':classpath'的所有构件。 > 无法解析com.android.tools.build:gradle:8.5.2。 被以下项目依赖: project : > com.android.application:com.android.application.gradle.plugin:8.5.2 project : > com.android.library:com.android.library.gradle.plugin:8.5.2 > 未找到匹配的com.android.tools.build:gradle:8.5.2变体。消费者配置要求查找一个运行时使用的库,兼容Java 8,打包为jar,依赖声明在外部,同时需要属性'org.gradle.plugin.api-version'的值为'8.7',但: - 变体'runtimeElements'声明了一个运行时使用的库,打包为jar,依赖声明在外部: - 不兼容:该组件兼容Java 11,而消费者需要兼容Java 8的组件 - 其他变体均存在类型或版本不兼容问题
kdoctor检测结果

核心原因
- Gradle与AGP版本不匹配:Gradle 8.7和AGP 8.5.2存在兼容性冲突,AGP 8.5.x系列仅支持Gradle 8.4版本。
- Java版本不符合要求:AGP 8.x系列强制要求使用Java 17,当前项目配置的Java 8无法适配。
修复步骤
1. 调整Gradle版本至兼容版本
- 修改
gradle/wrapper/gradle-wrapper.properties文件中的Gradle分发链接:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
- 确保根目录
settings.gradle.kts中AGP版本与Gradle版本匹配(保持AGP 8.5.2即可):
pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } plugins { val agpVersion = "8.5.2" id("com.android.application") version agpVersion id("com.android.library") version agpVersion } }
2. 配置项目使用Java 17
- 本地安装Java 17(验证:终端执行
java -version,确保输出版本为17.x) - 修改根目录
build.gradle.kts,指定全局Java编译版本:
plugins { id("com.android.application") version "8.5.2" apply false id("com.android.library") version "8.5.2" apply false } allprojects { repositories { google() mavenCentral() } } tasks.withType<JavaCompile> { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 }
- 在KMP模块的
build.gradle.kts中指定JVM目标版本:
kotlin { jvm { compilations.all { kotlinOptions.jvmTarget = "17" } } // 保留其他KMP目标配置(如iOS、shared等) }
3. 清理缓存并重新构建
- 终端执行:
./gradlew clean - 关闭Xcode,重新打开项目并执行构建
内容的提问来源于stack exchange,提问作者Hitesh Dhamshaniya
相关产品推荐
相关产品推荐

