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

Windows发布支持Android/iOS的KMM库至Maven Central后引入报错求助

解决Windows下KMM项目仅编译Android端的问题

方法1:通过Gradle配置默认仅启用Android目标

在项目根目录的gradle.properties文件中添加以下配置,强制KMM只处理Android相关构建目标,避免触发iOS任务:

kotlin.mpp.enabled.targets=android

添加后,所有默认构建操作都会跳过iOS相关任务,既不会尝试拉取不存在的iOS库产物,也能解决配置缓存的报错。

方法2:禁用iOS相关的构建任务

在模块的build.gradle.kts(或build.gradle)中添加配置,直接禁用所有iOS原生链接和编译任务:

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink> {
    enabled = false
}

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile> {
    if (name.contains("ios")) {
        enabled = false
    }
}

Gradle会跳过所有iOS相关的编译、链接任务,只执行Android端的构建流程。

方法3:针对目标源集精准控制依赖

修改KMM模块的build.gradle.kts,仅在Common和Android的源集中引入你的库,iOS源集不添加该依赖:

kotlin {
    android()
    ios() // 保留iOS目标但不配置相关依赖

    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation("com.yourgroup:MyLib:24.1.0-0010")
            }
        }
        val androidMain by getting {
            // Android可继承commonMain的依赖,无需额外重复添加
        }
        val iosMain by getting {
            // 不添加MyLib的依赖,避免Gradle尝试拉取iOS版本的库
        }
    }
}

这种方式既能保留iOS目标的配置,又不会触发iOS库的拉取和编译流程。

方法4:构建时通过命令行指定仅编译Android

如果只是临时需要编译Android端,无需修改配置文件,直接使用以下Gradle命令:

./gradlew assembleDebug -Pkotlin.mpp.enabled.targets=android

该参数会临时覆盖默认配置,仅执行Android相关的构建任务。

内容的提问来源于stack exchange,提问作者Mohamed Chaabouni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:44:52