zt
11/22/2022, 10:41 PM@file:Repository("<https://maven.pkg.jetbrains.space/public/p/compose/dev/>")
@file:DependsOn("org.jetbrains.compose.runtime:runtime:1.2.1")
@file:DependsOn("org.jetbrains.compose.desktop:desktop-jvm-linux-x64:1.2.1")
import androidx.compose.runtime.*
import androidx.compose.material.*
import androidx.compose.ui.window.*
application {
Window(
onCloseRequest = ::exitApplication
) {
Text("Hello, world!")
}
}
It's saying artifactResolutionException: Could not find artifact androidx.compose.runtime:runtime:jar:1.2.1 in https___maven.pkg.jetbrains.space_public_p_compose_dev_ (<https://maven.pkg.jetbrains.space/public/p/compose/dev/>)
The same repository and dependency in a regular gradle config file works so I don't see what I'm doing wronghfhbd
11/22/2022, 11:33 PMruntime-jvm
zt
11/22/2022, 11:35 PMhfhbd
11/22/2022, 11:36 PMjvm
but `desktop`: https://maven.pkg.jetbrains.space/public/p/compose/dev/org/jetbrains/compose/runtime/zt
11/22/2022, 11:42 PMtest.main.kts:8:1: warning: file 'org.jetbrains.compose.desktop:desktop-jvm-linux-x64:1.2.1' not found
test.main.kts:8:1: warning: artifactResolutionException: The following artifacts could not be resolved: org.jetbrains.compose.desktop:desktop-jvm-linux-x64:jar:1.2.1, org.jetbrains.compose.foundation:foundation:aar:1.2.1, androidx.compose.foundation:foundation:jar:1.2.1, org.jetbrains.compose.animation:animation:aar:1.2.1, androidx.compose.animation:animation:jar:1.2.1, org.jetbrains.compose.foundation:foundation-layout:aar:1.2.1, androidx.compose.foundation:foundation-layout:jar:1.2.1, org.jetbrains.compose.ui:ui-text:aar:1.2.1, androidx.compose.ui:ui-text:jar:1.2.1, org.jetbrains.compose.ui:ui-util:aar:1.2.1, androidx.compose.ui:ui-util:jar:1.2.1, org.jetbrains.compose.material:material:aar:1.2.1, androidx.compose.material:material:jar:1.2.1, org.jetbrains.compose.animation:animation-core:aar:1.2.1, androidx.compose.animation:animation-core:jar:1.2.1, org.jetbrains.compose.material:material-icons-core:aar:1.2.1, androidx.compose.material:material-icons-core:jar:1.2.1, org.jetbrains.compose.material:material-ripple:aar:1.2.1, androidx.compose.material:material-ripple:jar:1.2.1, org.jetbrains.compose.runtime:runtime:aar:1.2.1, androidx.compose.runtime:runtime:jar:1.2.1, org.jetbrains.compose.ui:ui:aar:1.2.1, androidx.compose.ui:ui:jar:1.2.1, org.jetbrains.compose.runtime:runtime-saveable:aar:1.2.1, androidx.compose.runtime:runtime-saveable:jar:1.2.1, org.jetbrains.compose.ui:ui-geometry:aar:1.2.1, androidx.compose.ui:ui-geometry:jar:1.2.1, org.jetbrains.compose.ui:ui-graphics:aar:1.2.1, androidx.compose.ui:ui-graphics:jar:1.2.1, org.jetbrains.compose.ui:ui-unit:aar:1.2.1, androidx.compose.ui:ui-unit:jar:1.2.1, org.jetbrains.compose.ui:ui-tooling-preview:aar:1.2.1, androidx.compose.ui:ui-tooling-preview:jar:1.2.1: Could not find artifact org.jetbrains.compose.desktop:desktop-jvm-linux-x64:jar:1.2.1 in https___maven.pkg.jetbrains.space_public_p_compose_dev_ (<https://maven.pkg.jetbrains.space/public/p/compose/dev/>)
hfhbd
11/22/2022, 11:45 PMzt
11/22/2022, 11:45 PM@file:CompilerOptions("-Xplugin=/home/nick/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose/compose-gradle-plugin/1.2.1/8f05014e323db9a7c32d051962aa06b77fe2f003/compose-gradle-plugin-1.2.1.jar")
zt
11/23/2022, 12:08 AMjava.lang.NoSuchMethodError: 'void androidx.compose.ui.window.Application_desktopKt.application$default(boolean, kotlin.jvm.functions.Function1, int, java.lang.Object)'
at Test_main.<init>(test.main.kts:15)
@file:Repository("<https://maven.pkg.jetbrains.space/public/p/compose/dev/>")
@file:Repository("<https://dl.google.com/dl/android/maven2/>")
@file:DependsOn("org.jetbrains.compose.runtime:runtime-desktop:1.2.1")
@file:DependsOn("org.jetbrains.compose.desktop:desktop-jvm:1.2.1")
@file:DependsOn("org.jetbrains.compose.ui:ui-desktop:1.2.1")
@file:DependsOn("org.jetbrains.compose.material:material-desktop:1.2.1")
import androidx.compose.material.*
import androidx.compose.runtime.*
import androidx.compose.ui.window.*
application {
Window(
onCloseRequest = ::exitApplication
) {
Text("Hello, world!")
}
}
hfhbd
11/23/2022, 12:21 AMzt
11/23/2022, 12:23 AMhfhbd
11/23/2022, 12:27 AMzt
11/23/2022, 1:26 AMzt
11/23/2022, 1:29 AMzt
11/30/2022, 9:36 PMzt
11/30/2022, 9:56 PMjava.lang.NoSuchMethodError: 'void androidx.compose.ui.window.Application_desktopKt.application$default(boolean, kotlin.jvm.functions.Function1, int, java.lang.Object)'
but that doesnt match the function signature I'm calling, and that function doesn't even seem to exist in the library source codechrmelchior
03/12/2024, 8:02 PMzt
03/12/2024, 8:14 PMchrmelchior
03/12/2024, 8:17 PMchrmelchior
03/16/2024, 7:52 PMzt
03/20/2024, 4:12 PMzt
03/21/2024, 1:23 AMjava.lang.StackOverflowError
at kotlin.script.experimental.api.ErrorHandlingKt.valueOrThrow(errorHandling.kt:305)
at ComposableSingletons$MainKt$lambda-3$1$2$1$1$2$1.invokeSuspend(Main.kt:63)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
Caused by: java.lang.StackOverflowError
at org.jetbrains.kotlin.ir.descriptors.IrBasedDescriptorsKt.toIrBasedDescriptor(IrBasedDescriptors.kt)
at org.jetbrains.kotlin.ir.symbols.impl.IrSymbolBase.getDescriptor(IrPrivateSymbolBase.kt:31)
at org.jetbrains.kotlin.ir.symbols.impl.IrScriptSymbolImpl.getDescriptor(IrPrivateSymbolBase.kt:151)
at org.jetbrains.kotlin.ir.declarations.impl.IrScriptImpl.getDescriptor(IrScriptImpl.kt:63)
at org.jetbrains.kotlin.ir.declarations.impl.IrScriptImpl.getDescriptor(IrScriptImpl.kt:24)
at org.jetbrains.kotlin.ir.descriptors.IrBasedDescriptorsKt.toIrBasedDescriptor(IrBasedDescriptors.kt:1271)
at org.jetbrains.kotlin.ir.descriptors.IrBasedDescriptorsKt.toIrBasedDescriptor(IrBasedDescriptors.kt:135)
at org.jetbrains.kotlin.ir.symbols.impl.IrSymbolBase.getDescriptor(IrPrivateSymbolBase.kt:31)
I structured my project to have a basic compose UI that can load scripts containing composable functions and hopefully be able to display them in the same windowchrmelchior
03/21/2024, 2:00 PMzt
03/21/2024, 3:14 PM@Composable
fun Content() {
Text("Hello")
}
chrmelchior
03/21/2024, 3:57 PM@file:Repository("<https://repo.maven.apache.org/maven2/>")
@file:Repository("<https://maven.google.com/>")
@file:DependsOn("org.jetbrains.compose:compose-full:1.6.0")
@file:DependsOn("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0")
@file:DependsOn("androidx.collection:collection-jvm:1.4.0")
@file:DependsOn("org.jetbrains.skiko:skiko-awt:0.7.93")
@file:DependsOn("org.jetbrains.skiko:skiko-awt-runtime-macos-arm64:0.7.93")
Especially compose-full
is nice, since it contains all compose dependencies in one jarzt
03/22/2024, 10:04 PMchrmelchior
03/24/2024, 9:33 AM@file:Repository("<https://repo.maven.apache.org/maven2/>")
@file:Repository("<https://maven.google.com/>")
@file:DependsOn("org.jetbrains.compose:compose-full:1.6.1")
@file:DependsOn("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0")
@file:DependsOn("androidx.collection:collection-jvm:1.4.0")
@file:DependsOn("org.jetbrains.skiko:skiko-awt:0.7.97")
@file:DependsOn("org.jetbrains.skiko:skiko-awt-runtime-macos-arm64:0.7.97")
import androidx.compose.material.Text
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.application
application {
Window(onCloseRequest = ::exitApplication) {
Text("Hello, world!")
}
}
Throws
java.awt.HeadlessException
at java.desktop/sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:58)
at androidx.compose.ui.window.LayoutConfiguration_desktopKt.getGlobalDensity(LayoutConfiguration.desktop.kt:41)
at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1.invoke(Application.desktop.kt:224)
at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1.invoke(Application.desktop.kt:219)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
at androidx.compose.runtime.ActualJvm_jvmKt.invokeComposable(ActualJvm.jvm.kt:33)
at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3303)
at androidx.compose.runtime.ComposerImpl.composeContent$runtime(Composer.kt:3236)
at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:725)
at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:1071)
at androidx.compose.runtime.CompositionImpl.composeInitial(Composition.kt:633)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:619)
at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2.invokeSuspend(Application.desktop.kt:219)
Which I actually think is expected, since it would make sense for the script engine to not support displays.
That said, it does work for Swing UI components. At least I can show a JFrame
, so my guess is that there is a way around it, maybe by using a ComposePanel
and putting content there: https://github.com/JetBrains/compose-multiplatform/blob/master/tutorials/Swing_Integration/README.md
At least if you want to run things from the CLI.zt
05/24/2024, 5:40 AMchrmelchior
05/24/2024, 6:13 PM2.0.20-dev-1805
so it would be worth testing thatzt
05/24/2024, 6:16 PMzt
07/11/2024, 12:36 AMkotlin-compose-compiler-plugin-embeddable-2.0.20-Beta2.jar
then its the StackOverflow nonsense
If I use kotlin-compose-compiler-plugin-embeddable-2.0.0.jar
then I get the error below
java.lang.NoSuchFieldError: VALIDATE_IR
at kotlin.script.experimental.api.ErrorHandlingKt.valueOrThrow(errorHandling.kt:305)
at ComposableSingletons$MainKt$lambda-3$1$2$1$1$2$1.invokeSuspend(Main.kt:62)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
Caused by: java.lang.NoSuchFieldError: VALIDATE_IR
at androidx.compose.compiler.plugins.kotlin.ComposePluginRegistrar$Companion.createComposeIrExtension(ComposePlugin.kt:426)
at androidx.compose.compiler.plugins.kotlin.ComposePluginRegistrar$Companion.createComposeIrExtension$default(ComposePlugin.kt:389)
at androidx.compose.compiler.plugins.kotlin.ComposePluginRegistrar.registerProjectComponents(ComposePlugin.kt:311)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.registerExtensionsFromPlugins$cli_base(KotlinCoreEnvironment.kt:740)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$ProjectEnvironment.registerExtensionsFromPlugins(KotlinCoreEnvironment.kt:179)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.configureProjectEnvironment(KotlinCoreEnvironment.kt:637)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:209)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:453)
at org.jetbrains.kotlin.scripting.compiler.plugin.impl.CompilationContextKt.createIsolatedCompilationContext(compilationContext.kt:77)
at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerIsolated.compile$lambda$2$lambda$1(ScriptJvmCompilerImpls.kt:65)
at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerImplsKt.withScriptCompilationCache(ScriptJvmCompilerImpls.kt:114)
at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerImplsKt.access$withScriptCompilationCache(ScriptJvmCompilerImpls.kt:1)
at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerIsolated.compile(ScriptJvmCompilerImpls.kt:60)
chrmelchior
07/11/2024, 9:19 AM2.0.20-Beta2
I am still seeing other errors in org.jetbrains.kotlin.backend.jvm.ir.JvmIrTypeUtilsKt.getErasedUpperBound(JvmIrTypeUtils.kt:98)
. Will need to dig into why that is happening.
On the positive side, with the compose compiler now part of the Kotlin release https://github.com/JetBrains/kotlin/tree/50a6b1d125d7dc3267a9264d7231842e90af585b/plugins/compose it should be easier to debug.zt
07/11/2024, 4:22 PMchrmelchior
07/12/2024, 7:58 AMzt
07/12/2024, 8:45 PMchrmelchior
07/12/2024, 10:42 PMzt
07/12/2024, 10:45 PMchrmelchior
07/12/2024, 10:48 PMzt
07/12/2024, 10:50 PMzt
07/13/2024, 12:33 AMzt
07/14/2024, 5:09 AMchrmelchior
07/15/2024, 7:28 AMzt
08/08/2024, 8:00 AMchrmelchior
08/12/2024, 8:41 AMzt
08/12/2024, 8:39 PMchrmelchior
08/13/2024, 10:17 AMzt
08/13/2024, 3:56 PM