首页 > 解决方案 > 网络调用在 Compose for Desktop Application 的 EXE 分发版本中不起作用

问题描述

我使用Ktor JVM Client在Compose for Desktop Application中进行网络调用。

网络调用在调试构建中运行良好意味着当我只是运行应用程序时它运行良好。

但是当我创建EXE分发文件时,通过packageExe在 Gradle 中执行任务,它正在创建一个EXE文件。我已经在我的机器上安装了它。然后我正在运行应用程序,我看到网络调用不起作用。我已检查互联网是否正常工作。

请提供解决此问题的解决方案。提前致谢。

标签: kotlinjetbrains-composecompose-desktop

解决方案


您的问题没有留下有关故障类型的任何详细信息(编译错误?运行时异常?空数据?等)。

但如果我不得不根据如此有限的信息进行推测,我猜可能是这样的:https ://github.com/JetBrains/compose-jb/issues/429

具体来说,在打包时,您需要指定要将哪些 JVM 模块打包到可分发的应用程序中,并且很可能缺少加密模块。尝试这样的事情:

compose.desktop {
    application {
        mainClass = "MainKt"
        nativeDistributions {
            modules("jdk.crypto.ec")

            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
            packageName = "untitled"
        }
    }
}

推荐阅读