badoo/Decompose

Failure to render screen after installation

anhanh11001 opened this issue · 5 comments

After my dependency installation with:

val decomposeVersion = "0.4.0"
implementation("com.arkivanov.decompose:decompose:$decomposeVersion")
implementation("com.arkivanov.decompose:extensions-compose-jetbrains:$decomposeVersion")

I receive the error below without even starting to use Decompose lib. Is this a known issue? Any ideas what's wrong with my installation. I'm developing a Jetbrains Compose desktop pet project

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: 'long org.jetbrains.skia.Paint._nMake()'
	at org.jetbrains.skia.Paint._nMake(Native Method)
	at org.jetbrains.skia.Paint$Companion._nMake(Paint.kt)
	at org.jetbrains.skia.Paint.<init>(Paint.kt:156)
	at androidx.compose.ui.graphics.DesktopPaint.<init>(DesktopPaint.desktop.kt:28)
	at androidx.compose.ui.graphics.DesktopPaint_desktopKt.Paint(DesktopPaint.desktop.kt:25)
	at androidx.compose.ui.node.InnerPlaceable.<clinit>(InnerPlaceable.kt:181)
	at androidx.compose.ui.node.LayoutNode.<init>(LayoutNode.kt:583)
	at androidx.compose.ui.node.LayoutNode.<init>(LayoutNode.kt:79)
	at androidx.compose.ui.platform.DesktopOwner.<init>(DesktopOwner.desktop.kt:141)
	at androidx.compose.ui.platform.DesktopOwner.<init>(DesktopOwner.desktop.kt:86)
	at androidx.compose.ui.awt.ComposeLayer$setContent$4.invoke(ComposeLayer.desktop.kt:287)
	at androidx.compose.ui.awt.ComposeLayer$setContent$4.invoke(ComposeLayer.desktop.kt:284)
	at androidx.compose.ui.awt.ComposeLayer$Wrapped.init(ComposeLayer.desktop.kt:91)
	at org.jetbrains.skiko.SkiaLayer.checkInit(SkiaLayer.kt:72)
	at org.jetbrains.skiko.SkiaLayer._init_$lambda-0(SkiaLayer.kt:60)
	at java.desktop/java.awt.Component.processHierarchyEvent(Component.java:6819)
	at java.desktop/java.awt.Component.processEvent(Component.java:6438)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859)
	at java.desktop/java.awt.Component.addNotify(Component.java:7123)
	at java.desktop/java.awt.Canvas.addNotify(Canvas.java:104)
	at java.desktop/java.awt.Container.addNotify(Container.java:2800)
	at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4791)
	at java.desktop/java.awt.Container.addNotify(Container.java:2800)
	at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4791)
	at androidx.compose.ui.awt.ComposeWindowDelegate$pane$1.addNotify(ComposeWindowDelegate.desktop.kt:58)
	at java.desktop/java.awt.Container.addNotify(Container.java:2800)
	at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4791)
	at java.desktop/java.awt.Container.addNotify(Container.java:2800)
	at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4791)
	at java.desktop/java.awt.Container.addNotify(Container.java:2800)
	at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4791)
	at java.desktop/javax.swing.JRootPane.addNotify(JRootPane.java:733)
	at java.desktop/java.awt.Container.addNotify(Container.java:2800)
	at java.desktop/java.awt.Window.addNotify(Window.java:787)
	at java.desktop/java.awt.Frame.addNotify(Frame.java:490)
	at java.desktop/java.awt.Window.show(Window.java:1049)
	at java.desktop/java.awt.Component.show(Component.java:1732)
	at java.desktop/java.awt.Component.setVisible(Component.java:1679)
	at java.desktop/java.awt.Window.setVisible(Window.java:1032)
	at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$4$1.invokeSuspend(AwtWindow.desktop.kt:122)
	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:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	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)

It seems to work fine with 0.3.1

Thanks for the report. The error seems unrelated to Decompose, so worth filing a bug to jb-compose. However this might be a binary compatibility issue. You can also try downgrading the version of Compose. I'm waiting for a Jetpack Compose version compatible with Kotlin 1.6.0, so I could release an update.

Ok, thanks. And to be clear, this error does not appear when installing the dependency, but when compiling the UI. I'll find out what's wrong and report to the right place. But please let me know if you also encounter this

This looks like a runtime error. Are you sure it is a compile time error? Anyway, still looks like a binary compatibility issue. Most like due to Decompose version is not compatible with Compose version. I suggest to try downgrading Compose version. I think it should work with at least 1.0.0-alpha4-build348.

Thanks for the help, I was using old Compose version