You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:54:02