如何为Kotlin Multiplatform项目生成.exe文件?执行Gradle命令报错
解决方法:生成Compose Desktop的.exe安装包
为什么gradle nativeBinaries会报错?
你的项目是基于**Compose Desktop(JVM目标)**的Kotlin多平台项目,nativeBinaries是纯Kotlin/Native项目专属的Gradle任务——而你的项目里并没有配置Kotlin/Native的桌面目标(比如mingwX64),所以Gradle找不到这个任务。
生成.exe安装包的正确操作
你的项目已经配置了compose.desktop模块,只需要调整配置并执行对应Gradle任务即可:
1. 确认Windows目标格式(可选)
在compose.desktop的nativeDistributions块中,已经包含了TargetFormat.Msi(Windows安装包)。如果需要生成单文件.exe程序,可以添加TargetFormat.Exe:
compose.desktop { application { mainClass = "MainKt" nativeDistributions { // 同时支持Mac、Windows、Linux的分发格式 targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb, TargetFormat.Exe) packageName = "com.<ProjectName>" packageVersion = "1.0.0" // 可选:配置Windows专属参数,比如开始菜单分组、创建快捷方式 windows { menuGroup = "你的应用名称" shortcut = true } } } }
2. 执行Gradle任务生成文件
根据你需要的构建类型,运行对应的命令:
- 生成Release版本的.exe/msi:
./gradlew packageDesktopReleaseDistributionForCurrentOS - 生成Debug版本的.exe/msi:
./gradlew packageDesktopDebugDistributionForCurrentOS
3. 找到生成的文件
生成的程序和安装包会存放在项目目录的build/compose/binaries/desktop路径下:
- 单文件.exe程序:
build/compose/binaries/desktop/<buildType>/(<buildType>是release或debug) - .msi安装包:
build/compose/binaries/desktop/<buildType>/installer/
额外说明:如果要使用纯Kotlin/Native桌面目标
如果你确实想基于Kotlin/Native而非JVM开发桌面程序(注意这种方式不支持Compose UI),需要在kotlin块中添加Windows原生目标:
kotlin { // 保留你现有的其他目标(wasmJs、androidTarget等) mingwX64("nativeDesktop") { binaries.executable { entryPoint = "main" // 指定程序入口函数 } } }
配置完成后,就可以执行gradle nativeDesktopBinaries任务来生成原生程序了。
内容的提问来源于stack exchange,提问作者Prince mehra
相关产品推荐
相关产品推荐

