将Kotlin安卓应用转为KMM时出现iosSimulatorArm64未引用报错如何解决
KMM迁移报错排查与解决方案
两个报错的触发原因分别是:共享模块Gradle配置未声明任何Kotlin多平台目标、Kotlin版本不支持iosSimulatorArm64目标或该目标未正确配置,可按以下步骤修复:
1. 统一Kotlin版本
iosSimulatorArm64目标仅在Kotlin 1.6.10及以上版本原生支持,先确认项目全局的Kotlin插件、依赖版本 ≥ 1.6.10,版本不匹配则升级到最新稳定版。
2. 修正共享模块Gradle配置
打开kmmsharedmodule模块下的build.gradle.kts(Groovy语法对应修改即可),补全Kotlin多平台目标声明:
plugins { kotlin("multiplatform") id("com.android.library") } kotlin { // 声明Android目标 androidTarget { compilations.all { kotlinOptions { jvmTarget = "1.8" } } } // 声明iOS全架构目标 iosX64() iosArm64() iosSimulatorArm64() sourceSets { val commonMain by getting val commonTest by getting { dependencies { implementation(kotlin("test")) } } val androidMain by getting val androidUnitTest by getting // iOS源集合并配置 val iosX64Main by getting val iosArm64Main by getting val iosSimulatorArm64Main by getting val iosMain by creating { dependsOn(commonMain) iosX64Main.dependsOn(this) iosArm64Main.dependsOn(this) iosSimulatorArm64Main.dependsOn(this) } val iosX64Test by getting val iosArm64Test by getting val iosSimulatorArm64Test by getting val iosTest by creating { dependsOn(commonTest) iosX64Test.dependsOn(this) iosArm64Test.dependsOn(this) iosSimulatorArm64Test.dependsOn(this) } } } android { namespace = "你的共享模块包名" compileSdk = 33 defaultConfig { minSdk = 24 testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles("consumer-rules.pro") } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } }
如果暂时不需要支持M1/M2芯片的iOS模拟器,可以直接移除iosSimulatorArm64相关的所有声明,也可解决该目标无法识别的报错。
3. 核对全局配置
- 根目录
build.gradle.kts中必须声明Kotlin多平台插件:plugins { id("com.android.application") version "7.4.2" apply false id("com.android.library") version "7.4.2" apply false kotlin("android") version "1.8.20" apply false kotlin("multiplatform") version "1.8.20" apply false } - 根目录
settings.gradle.kts中确认已引入共享模块:include(":kmmsharedmodule")
4. 清理重建
修改完成后同步Gradle,执行Build -> Clean Project后再执行Rebuild Project即可。
内容的提问来源于stack exchange,提问作者KSDev
相关产品推荐
相关产品推荐

