网络调用在 Compose for Desktop Application 的 EXE 分发版本中不起作用
Network calls not working in EXE distribution build of Compose for Desktop Application
我使用 Ktor JVM Client 在 Compose for Desktop 应用程序中进行网络调用。
网络调用在调试中工作正常构建意味着当我只是运行应用程序时它工作正常。
但是当我创建 EXE 分发文件时,通过在 Gradle 中执行 packageExe
任务,它创建了一个 EXE 文件。我已经在我的机器上安装了它。然后我 运行 应用程序,我看到网络调用不工作。我检查过网络是否正常。
请提供解决此问题的解决方案。提前致谢。
你的问题没有留下任何关于失败类型的细节(编译错误?运行时异常?空数据?等)。
但如果我不得不根据如此有限的信息进行推测,我猜可能是这样的: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"
}
}
}
我使用 Ktor JVM Client 在 Compose for Desktop 应用程序中进行网络调用。
网络调用在调试中工作正常构建意味着当我只是运行应用程序时它工作正常。
但是当我创建 EXE 分发文件时,通过在 Gradle 中执行 packageExe
任务,它创建了一个 EXE 文件。我已经在我的机器上安装了它。然后我 运行 应用程序,我看到网络调用不工作。我检查过网络是否正常。
请提供解决此问题的解决方案。提前致谢。
你的问题没有留下任何关于失败类型的细节(编译错误?运行时异常?空数据?等)。
但如果我不得不根据如此有限的信息进行推测,我猜可能是这样的: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"
}
}
}