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

Kotlin多平台macosArm64在IDEA构建失败,终端执行正常求助

问题

现有一份Kotlin Multiplatform示例代码,通过终端执行gradle macos:runDebugExecutableMacosArm64可成功运行,输出“Hello macos-arm64 native!”,但在IntelliJ IDEA中编译时出现以下错误:

Execution failed for task ':commonizeNativeDistribution'.
> Could not resolve all files for configuration ':kotlinKlibCommonizerClasspath'.
   > Cannot resolve external dependency org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.9.10 because no repositories are defined.

同时IDEA无法识别构建脚本(内容全红高亮)。移除macosArm64()目标并添加jvm()后,IDEA可正常识别构建脚本,且Fleet构建该项目时也会出现相同错误。

咨询点:

  • IDEA缺少什么配置导致无法处理构建脚本?
  • 为何该代码在终端可正常执行?

环境信息:

  • Mac OS X 14.1 aarch64
  • Xcode 15.0.1 Build version 15A507
  • Gradle 8.4
  • Kotlin 1.9.10
  • JVM 17.0.2
  • IntelliJ IDEA 2023.2.4(社区版)
解答

一、终端正常执行但IDE报错的原因

终端执行Gradle任务时,会自动调用Kotlin插件内置的仓库源拉取kotlin-klib-commonizer-embeddable这类Native工具依赖;但IDEA和Fleet在同步项目时,会严格遵循构建脚本中显式声明的仓库配置——如果根配置文件里没添加对应仓库,IDE就无法定位到该依赖,进而触发报错。

切换到jvm()目标时,JVM相关工具依赖的仓库路径会被IDE内置的Gradle/Kotlin支持自动补全,因此不会出现识别问题。

二、IDEA需补充的配置

要让IDE正常识别构建脚本,需在项目根级配置文件中显式添加Kotlin Native工具依赖的仓库源,有两种配置方式:

方式1:在settings.gradle.kts中配置

pluginManagement {
    repositories {
        gradlePluginPortal()
        mavenCentral()
        maven("https://maven.pkg.jetbrains.space/public/p/kotlin/dev")
    }
}

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        mavenCentral()
        maven("https://maven.pkg.jetbrains.space/public/p/kotlin/dev")
    }
}

方式2:在根build.gradle.kts中配置

allprojects {
    repositories {
        mavenCentral()
        maven("https://maven.pkg.jetbrains.space/public/p/kotlin/dev")
    }
}

配置完成后,重新同步Gradle项目,IDEA即可正常识别构建脚本并完成编译。

内容的提问来源于stack exchange,提问作者Stanley Wintergreen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 22:12:40