JetBrains / skiko

Kotlin Multiplatform bindings to Skia
Apache License 2.0
1.82k stars 118 forks source link

Crash on Windows with Compose #488

Closed mrsrmn closed 2 years ago

mrsrmn commented 2 years ago

When I run my desktop compose app, i get this error:

"C:\Program Files\Java\jdk-16.0.1\bin\java.exe" -javaagent:C:\Users\emirs\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\213.6777.52\lib\idea_rt.jar=53861:C:\Users\emirs\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\213.6777.52\bin -Dfile.encoding=UTF-8 -classpath C:\Users\emirs\IdeaProjects\soundboard\build\classes\kotlin\main;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk8\1.6.10\e80fe6ac3c3573a80305f5ec43f86b829e8ab53d\kotlin-stdlib-jdk8-1.6.10.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk7\1.6.10\e1c380673654a089c4f0c9f83d0ddfdc1efdb498\kotlin-stdlib-jdk7-1.6.10.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.6.10\b8af3fe6f1ca88526914929add63cf5e7c5049af\kotlin-stdlib-1.6.10.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.desktop\desktop-jvm\1.0.1\5ee1b0cb95662b9ec8e19c2d7f94b38673fdbe14\desktop-jvm-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.6.10\c118700e3a33c8a0d9adc920e9dec0831171925\kotlin-stdlib-common-1.6.10.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.material\material-desktop\1.0.1\5ef2723497b1ab6f0be607f7dc005fb7513402c8\material-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.foundation\foundation-desktop\1.0.1\439179fa1026c164fa29ee1e2ab497c8eba717b0\foundation-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.ui\ui-desktop\1.0.1\2e47cdd922a1e11ee517188d1bde5f969ba7014b\ui-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.ui\ui-tooling-preview-desktop\1.0.1\b57e16cd7cca67c9aa0bfb85aba98e393c486771\ui-tooling-preview-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.runtime\runtime-desktop\1.0.1\cccd4067659a6f0d434e97795beccef884d1d9e8\runtime-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlinx\kotlinx-coroutines-swing\1.5.2\373883facba753a6665fbe1c6820f9dc156045b1\kotlinx-coroutines-swing-1.5.2.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.material\material-ripple-desktop\1.0.1\977f5ceeba30bb0fa9fb0fd5f902ad93e56e7ebc\material-ripple-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.material\material-icons-core-desktop\1.0.1\cdf1ec28bd1eb52288e8b9c6c8fb6859b06ab394\material-icons-core-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.animation\animation-core-desktop\1.0.1\35cb8857d549cceabc442af169cd3205cbe14555\animation-core-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.ui\ui-text-desktop\1.0.1\da5bc180bacc540c930f8c3ac453d4bb97706491\ui-text-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.animation\animation-desktop\1.0.1\5334039489143635a0339f094f27590db297516f\animation-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.runtime\runtime-saveable-desktop\1.0.1\e202665934e15df56d9a0b7d30dc71df4381e3c4\runtime-saveable-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.ui\ui-graphics-desktop\1.0.1\2c9c08e424e546faf93e8f8facc6c5a0910922b3\ui-graphics-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.skiko\skiko-jvm\0.6.6\c3e73332f5f45885ea0598f1675c9673a5f12683\skiko-jvm-0.6.6.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.ui\ui-unit-desktop\1.0.1\14026c6ac45573662068c721c4b79853dd0fa6ed\ui-unit-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.ui\ui-geometry-desktop\1.0.1\51cf3b7ba42e945ad258e14eeaa16e4e0a4bf182\ui-geometry-desktop-1.0.1.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlinx\kotlinx-coroutines-core-jvm\1.5.2\f4cc07a50437659e0043e7da762809a46932b6a0\kotlinx-coroutines-core-jvm-1.5.2.jar;C:\Users\emirs\.gradle\caches\modules-2\files-2.1\org.jetbrains.compose.foundation\foundation-layout-desktop\1.0.1\22848f5b2bb1cdd173506144ad5491a0f5becc6f\foundation-layout-desktop-1.0.1.jar MainKt
Exception in thread "main" java.lang.ExceptionInInitializerError
    at androidx.compose.ui.awt.ComposeLayer.<init>(ComposeLayer.desktop.kt:73)
    at androidx.compose.ui.awt.ComposeWindowDelegate.<init>(ComposeWindowDelegate.desktop.kt:44)
    at androidx.compose.ui.awt.ComposeWindow.<init>(ComposeWindow.desktop.kt:47)
    at androidx.compose.ui.awt.ComposeWindow.<init>(ComposeWindow.desktop.kt:44)
    at androidx.compose.ui.window.Window_desktopKt$Window$3.invoke(Window.desktop.kt:161)
    at androidx.compose.ui.window.Window_desktopKt$Window$3.invoke(Window.desktop.kt:156)
    at androidx.compose.ui.window.Window_desktopKt$Window$10$1.invoke(Window.desktop.kt:367)
    at androidx.compose.ui.window.Window_desktopKt$Window$10$1.invoke(Window.desktop.kt:366)
    at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$2.invoke(AwtWindow.desktop.kt:75)
    at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$2.invoke(AwtWindow.desktop.kt:74)
    at androidx.compose.runtime.DisposableEffectImpl.onRemembered(Effects.kt:81)
    at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:802)
    at androidx.compose.runtime.CompositionImpl.applyChanges(Composition.kt:647)
    at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:763)
    at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:433)
    at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2.invokeSuspend(Application.desktop.kt:220)
    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:316)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    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)
Caused by: org.jetbrains.skiko.LibraryLoadException: Cannot find skiko-windows-x64.dll.sha256, proper native dependency missing.
    at org.jetbrains.skiko.Library.findAndLoad(Library.kt:100)
    at org.jetbrains.skiko.Library.load(Library.kt:59)
    at org.jetbrains.skiko.SkiaLayer.<clinit>(SkiaLayer.jvm.kt:29)
    ... 31 more

My build.gradle.kts file:

import org.jetbrains.compose.compose
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    kotlin("jvm") version "1.6.10"
    id("org.jetbrains.compose") version "1.0.1"
}

group = "me.emirs"
version = "1.0"

repositories {
    google()
    mavenCentral()
    maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
}

dependencies {
    implementation(compose.desktop.currentOs)
}

tasks.withType<KotlinCompile> {
    kotlinOptions.jvmTarget = "16"
}

compose.desktop {
    application {
        mainClass = "MainKt"
        nativeDistributions {
            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
            packageName = "soundboard"
            packageVersion = "1.0.0"
        }
    }
}

I tried changing compose.desktop.currentOs to compose.desktop.windows_x64 but that didnt fix the problem either. I looked at several issues and questions but none of them actually had this problem. The error says that a file is missing, if thats actually the case, how can I download the file?

Edit:

I now get this error in the gradle sync:

Could not resolve org.jetbrains.skiko:skiko-jvm-runtime-windows-x64:0.6.6.

I think this is why the file missing wasnt installed.

mrsrmn commented 2 years ago

https://github.com/react-native-webview/react-native-webview/issues/299#issuecomment-517970280 Fixed my issue.

okushnikov commented 1 month ago

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.