Kamel-Media / Kamel

Kotlin asynchronous media loading and caching library for Compose.
Apache License 2.0
595 stars 23 forks source link

UnsatisfiedLinkError synchronizing in compose multiplatform Desktop JVM #55

Closed orelvis15 closed 10 months ago

orelvis15 commented 10 months ago

I am getting this error when I add the Kamel lib in my project.

you are without my imports:

implementation("io.ktor:ktor-client-core:2.3.3")
implementation("io.ktor:ktor-client-cio:2.3.3")
implementation("io.ktor:ktor-serialization-gson:2.3.3")
implementation("io.ktor:ktor-serialization-kotlinx-cbor:2.3.3")
implementation("io.ktor:ktor-client-content-negotiation:2.3.3")
implementation("io.ktor:ktor-client-auth:2.3.3")
implementation("media.kamel:kamel-image:0.7.2")
....
Exception in thread "main" java.lang.UnsatisfiedLinkError: 'long org.jetbrains.skiko.MetalApiKt.chooseAdapter(int)'
    at org.jetbrains.skiko.MetalApiKt.chooseAdapter(Native Method)
    at org.jetbrains.skiko.MetalApiKt.chooseMetalAdapter(MetalApi.kt:10)
    at org.jetbrains.skiko.redrawer.MetalRedrawer.<init>(MetalRedrawer.kt:64)
    at org.jetbrains.skiko.Actuals_awtKt$makeDefaultRenderFactory$1.createRedrawer(Actuals.awt.kt:26)
    at org.jetbrains.skiko.SkiaLayer$redrawerManager$1.invoke(SkiaLayer.awt.kt:304)
    at org.jetbrains.skiko.SkiaLayer$redrawerManager$1.invoke(SkiaLayer.awt.kt:302)
    at org.jetbrains.skiko.redrawer.RedrawerManager.findNextWorkingRenderApi(RedrawerManager.kt:31)
    at org.jetbrains.skiko.SkiaLayer.init(SkiaLayer.awt.kt:334)
    at org.jetbrains.skiko.SkiaLayer.addNotify(SkiaLayer.awt.kt:161)
    at androidx.compose.ui.awt.WindowComposeBridge$component$1.addNotify(WindowComposeBridge.desktop.kt:45)
    at java.desktop/java.awt.Container.addNotify(Container.java:2804)
    at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4839)
    at androidx.compose.ui.awt.ComposeWindowDelegate$_pane$1.addNotify(ComposeWindowDelegate.desktop.kt:84)
    at java.desktop/java.awt.Container.addNotify(Container.java:2804)
    at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4839)
    at java.desktop/java.awt.Container.addNotify(Container.java:2804)
    at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4839)
    at java.desktop/java.awt.Container.addNotify(Container.java:2804)
    at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4839)
    at java.desktop/javax.swing.JRootPane.addNotify(JRootPane.java:729)
    at java.desktop/java.awt.Container.addNotify(Container.java:2804)
    at java.desktop/java.awt.Window.addNotify(Window.java:791)
    at java.desktop/java.awt.Frame.addNotify(Frame.java:495)
    at java.desktop/java.awt.Window.pack(Window.java:829)
    at androidx.compose.ui.util.Windows_desktopKt.setSizeImpl-6HolHcs(Windows.desktop.kt:115)
    at androidx.compose.ui.util.Windows_desktopKt.setSizeSafely-hQcJfNw(Windows.desktop.kt:54)
    at androidx.compose.ui.window.Window_desktopKt$Window$5.invoke(Window.desktop.kt:236)
    at androidx.compose.ui.window.Window_desktopKt$Window$5.invoke(Window.desktop.kt:173)
    at androidx.compose.ui.window.Window_desktopKt$Window$12$1.invoke(Window.desktop.kt:422)
    at androidx.compose.ui.window.Window_desktopKt$Window$12$1.invoke(Window.desktop.kt:416)
    at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$3.invoke(AwtWindow.desktop.kt:82)
    at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$3.invoke(AwtWindow.desktop.kt:80)
    at androidx.compose.ui.util.UpdateEffect_desktopKt$UpdateEffect$2$performUpdate$1.invoke(UpdateEffect.desktop.kt:59)
    at androidx.compose.ui.util.UpdateEffect_desktopKt$UpdateEffect$2$performUpdate$1.invoke(UpdateEffect.desktop.kt:55)
    at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2300)
    at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:471)
    at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:234)
    at androidx.compose.ui.util.UpdateEffect_desktopKt$UpdateEffect$2.invoke$performUpdate(UpdateEffect.desktop.kt:55)
    at androidx.compose.ui.util.UpdateEffect_desktopKt$UpdateEffect$2.invoke(UpdateEffect.desktop.kt:64)
    at androidx.compose.ui.util.UpdateEffect_desktopKt$UpdateEffect$2.invoke(UpdateEffect.desktop.kt:47)
    at androidx.compose.runtime.DisposableEffectImpl.onRemembered(Effects.kt:81)
    at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:1137)
    at androidx.compose.runtime.CompositionImpl.applyChangesInLocked(Composition.kt:828)
    at androidx.compose.runtime.CompositionImpl.applyChanges(Composition.kt:849)
    at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:1041)
    at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:520)
    at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2.invokeSuspend(Application.desktop.kt:219)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
luca992 commented 10 months ago

Hmmm what version of compose are you using? Does 0.7.1 work

orelvis15 commented 10 months ago

I was using Compose:1.4.3 with Kamel:0.7.2 and it gave me that error with having the import in the gradle, then I updated to Compose:1.5.0 and everything works perfect!. Sorry for the early issue :)