问题标签 [compose-multiplatform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
30 浏览

kotlin - 如何在 IntelliJ-IDEA 中使用 Compose for Desktop 编译 MSI 包?

我正在尝试使用创建 Compose for Desktop 应用程序的 MSI 独立包

./gradlew package

在 IntelliJ-IDEA 终端中,但我总是得到:

任务:createRuntimeImage 失败

我刚刚创建了 IDE 建议的 Compose for Desktop 示例项目(使用“新建项目”向导)并尝试编译它但没有成功。我使用的是 Windows 11,安装了 JDK 17 以及 MinGW。Kotlin 版本是 1.5.31,Compose 版本是 1.0.0。我可以通过右键单击“Main.kt”和“运行”来运行应用程序。尝试打包时的终端输出为:

任务“:createRuntimeImage”执行失败。外部工具执行失败:

  • 命令:[C:\Program Files\Java\jdk-17.0.2\bin\jlink.exe, @C:\Users\MyUserName\IdeaProjects\untitled\build\compose\tmp\createRuntimeImage.args.txt]
  • 工作目录:[]
  • 退出代码:1
  • 标准输出日志:C:\Users\MyUserName\IdeaProjects\untitled\build\compose\logs\createRuntimeImage\jlink-2022-02-22-18-50-47-out.txt
  • 错误日志:C:\Users\MyUserName\IdeaProjects\untitled\build\compose\logs\createRuntimeImage\jlink-2022-02-22-18-50-47-err.txt

“[...]-err.txt”文件为空,“[...]-out.txt”文件包含:

错误:C:\Users\MyUserName\IdeaProjects

最后,“[...].args.txt”文件包含:

"java.desktop" --add-modules "java.logging" --add-modules "jdk.crypto.ec" --strip-debug --no-header-files --no-man-pages --strip-本机命令 -- 输出 "C:\Users\MyUserName\IdeaProjects\untitled\build\compose\tmp\main\runtime"

我将其运行为:

这是输出:

org.gradle.api.tasks.TaskExecutionException:任务“:createRuntimeImage”执行失败。org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:188) org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263) org.gradle。 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:174) 在 org.gradle.api.internal 的 api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:186)。 tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109) 在 org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) 在 org.gradle.api.internal.tasks.execution。解决任务执行模式执行器。

原因:java.lang.IllegalStateException:外部工具执行失败:在 org.jetbrains.compose.desktop.application.internal 的 org.jetbrains.compose.desktop.application.internal.ExternalToolRunner.invoke(ExternalToolRunner.kt:71)。 ExternalToolRunner.invoke$default(ExternalToolRunner.kt:22) at org.jetbrains.compose.desktop.application.tasks.AbstractJvmToolOperationTask.run(AbstractJvmToolOperationTask.kt:70) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 org.gradle 的 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)。 internal.reflect.JavaMethod.invoke(JavaMethod.java:104) 在 org.gradle.api.internal.project.taskfactory.IncrementalInputsTaskAction。doExecute(IncrementalInputsTaskAction.java:32) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51) at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTask​​Action.execute(AbstractIncrementalTask​​Action. java:25) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:506 ) 在 org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) 在 org.gradle.internal.operations 的 org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)。 DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) 在 org.gradle.internal.operations。DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:74) 在 org.gradle.internal.operations.UnmanagedBuildOperationWrapper .runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:74) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:491) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:474) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:106 ) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:271)
在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:249) 在 org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:83) 在 org.gradle .internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:37) at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50) at org.gradle.internal.execution.steps .ExecuteStep$1.call(ExecuteStep.java:47) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner. java:195)在 org.gradle 的 org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)。internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java :68) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79) 在 org.gradle.internal 的 org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) .operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79) 在 org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java :47) 在组织。gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:37) 在 org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68) 在 org.gradle.internal.execution.steps。 RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:50) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java: 36) 在 org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74) 在 org.gradle.internal 的 org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41) .execution.steps.TimeoutStep.execute(TimeoutStep.java:55) 在 org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51) 在 org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:54) 在 org.gradle.internal 的 org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29) .execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:35) 在 org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60) 在 org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute (BroadcastChangingOutputsStep.java:27) 在 org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:174) 在 org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:74) 在org.gradle.internal 的 org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:45)。execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:40) at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:29) at org.gradle.internal.execution.steps.RecordOutputsStep.execute( RecordOutputsStep.java:36) 在 org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22) 在 org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:99) 在 org .gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:92) 在 org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52) 在 org.gradle.internal。 execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36) 在 org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:85) 在 org.gradle。internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:42) 在 org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37) 在 org.gradle.internal.execution.steps。 legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27) 在 org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:91) 在 org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep. java:49) at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:106) at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:51) at org.gradle .internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:72) 在 org.gradle。internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:46) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:86) at org.gradle.internal.execution.steps .SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86) 在 org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:32) 在 org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep .java:38) 在 org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:43) 在 org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:31) 在 org. org.gradle.api.internal 的 gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)。tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$2.withWorkspace(ExecuteActionsTaskExecuter.java:284) 在 org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40) 在 org.gradle.internal.execution.steps.AssignWorkspaceStep .execute(AssignWorkspaceStep.java:30) 在 org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37) 在 org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27) ) 在 org.gradle.internal 的 org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33) 的 org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)。 execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter。在 org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter. java:109) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)在 org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56) 在 org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) .api.internal.tasks.execution.CatchExceptionTaskExecuter。在org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call( EventFiringTaskExecuter.java:55) 在 org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) 在 org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200 ) 在 org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) 在 org.gradle.internal.operations 的 org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195) .DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) 在 org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) 在 org.gradle.internal.operations.DefaultBuildOperationRunner 的 org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) .call(DefaultBuildOperationRunner.java:62) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)在 org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79) 在 org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) 在 org.gradle.execution.plan .LocalTask​​NodeExecutor。在 org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:395) 处执行(LocalTask​​NodeExecutor.java:74)在 org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:388) 在 org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:374) 在 org.gradle.execution.plan .DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127) 在 org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191) 在 org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker。executeNextNode(DefaultPlanExecutor.java:182) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)在 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) 在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)运行(ThreadFactoryImpl.java:56)运行(ThreadFactoryImpl.java:56)

我尝试过更改 Kotlin、Compose 和 JDK 版本,但无法解决。尽管我对此进行了很多搜索,但其他解决方案似乎对我不起作用。任何帮助将不胜感激!