运行Kotlin Multiplatform iOS项目时遇Command PhaseScriptExecution错误
解决KMM iOS端运行时Command PhaseScriptExecution失败问题
问题核心
你的KMM项目iOS运行报错,根源是com.android.tools.build:gradle:7.4.2要求Java 11环境,但当前项目使用Java 8,同时存在Gradle插件API版本不匹配的问题。
具体解决步骤
1. 切换项目JDK到Java 11
- 打开Android Studio,依次进入
File > Project Structure > SDK Location - 在
JDK location处选择Java 11(Android Studio自带的JDK 11路径一般是/Applications/Android Studio.app/Contents/jbr/Contents/Home) - 同时进入
Settings > Build, Execution, Deployment > Build Tools > Gradle,把Gradle JVM设置为刚才选的Java 11
2. 调整Gradle配置文件
修改根目录下的build.gradle.kts:
- 确保Gradle插件版本和Gradle wrapper版本匹配(AGP 7.4.2对应Gradle 7.5及以上版本):
plugins { id("com.android.application") version "7.4.2" apply false id("com.android.library") version "7.4.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 } // 统一设置Java版本 allprojects { tasks.withType<JavaCompile> { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { kotlinOptions.jvmTarget = "11" } } - 修改
gradle/wrapper/gradle-wrapper.properties中的Gradle版本为7.5及以上:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
3. 清理缓存并重新同步
- 在Android Studio中执行
File > Sync Project with Gradle Files - 终端执行命令清理Gradle缓存:
./gradlew clean rm -rf ~/.gradle/caches - 打开Xcode,执行
Product > Clean Build Folder,之后关闭并重新打开Xcode
4. 重新运行iOS项目
完成以上步骤后,回到Xcode或Android Studio的iOS运行配置,重新启动模拟器运行项目。
内容的提问来源于stack exchange,提问作者rptwsthi
相关产品推荐
相关产品推荐

