zacharee / SamloaderKotlin

MIT License
912 stars 108 forks source link

java.lang.IllegalStateException: Could not load font #123

Closed Vosjedev closed 8 months ago

Vosjedev commented 9 months ago

I am running archlinux, and I downloaded the latest release.

It complains about not being able to load a font, not showing what font. I installed by downloading the tar.gz, extracting, cd'ing into the directory, and running bin/bifrost.

Here is the stacktrace (all output):

stacktrace (click to expand) ``` Dec 10, 2023 6:42:43 PM java.util.prefs.FileSystemPreferences$6 run WARNING: Prefs file removed in background /home/vosje/.java/.userPrefs/prefs.xml java.lang.IllegalStateException: Could not load font at androidx.compose.ui.text.font.TypefaceRequestCache.runCached(FontFamilyResolver.kt:200) at androidx.compose.ui.text.font.FontFamilyResolverImpl.resolve(FontFamilyResolver.kt:92) at androidx.compose.ui.text.font.FontFamilyResolverImpl.resolve-DPcqOEQ(FontFamilyResolver.kt:79) at androidx.compose.ui.text.platform.ComputedStyle.toSkTextStyle(SkiaParagraph.skiko.kt:227) at androidx.compose.ui.text.platform.ParagraphBuilder$makeSkTextStyle$1.invoke(SkiaParagraph.skiko.kt:548) at androidx.compose.ui.text.platform.ParagraphBuilder$makeSkTextStyle$1.invoke(SkiaParagraph.skiko.kt:547) at androidx.compose.ui.text.WeakKeysCache.get(Cache.jvm.kt:24) at androidx.compose.ui.text.platform.ParagraphBuilder.makeSkTextStyle(SkiaParagraph.skiko.kt:547) at androidx.compose.ui.text.platform.ParagraphBuilder.textStyleToParagraphStyle(SkiaParagraph.skiko.kt:513) at androidx.compose.ui.text.platform.ParagraphBuilder.build(SkiaParagraph.skiko.kt:320) at androidx.compose.ui.text.platform.ParagraphLayouter.layoutParagraph(ParagraphLayouter.skiko.kt:162) at androidx.compose.ui.text.platform.SkiaParagraphIntrinsics.(SkiaParagraphIntrinsics.skiko.kt:80) at androidx.compose.ui.text.platform.SkiaParagraphIntrinsics_skikoKt.ActualParagraphIntrinsics(SkiaParagraphIntrinsics.skiko.kt:37) at androidx.compose.ui.text.ParagraphIntrinsicsKt.ParagraphIntrinsics(ParagraphIntrinsics.kt:98) at androidx.compose.ui.text.MultiParagraphIntrinsics.(MultiParagraphIntrinsics.kt:102) at androidx.compose.foundation.text.modifiers.MultiParagraphLayoutCache.setLayoutDirection(MultiParagraphLayoutCache.kt:250) at androidx.compose.foundation.text.modifiers.MultiParagraphLayoutCache.layoutText-K40F9xA(MultiParagraphLayoutCache.kt:275) at androidx.compose.foundation.text.modifiers.MultiParagraphLayoutCache.intrinsicHeight(MultiParagraphLayoutCache.kt:203) at androidx.compose.foundation.text.modifiers.TextAnnotatedStringNode.maxIntrinsicHeight(TextAnnotatedStringNode.kt:355) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.maxIntrinsicHeight(LayoutModifierNodeCoordinator.kt:151) at androidx.compose.ui.node.NodeMeasuringIntrinsics$DefaultIntrinsicMeasurable.measure-BRTryo0(LayoutModifierNode.kt:262) at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:646) at androidx.compose.ui.node.LayoutModifierNode$maxIntrinsicHeight$1.measure-3p2s80s(LayoutModifierNode.kt:122) at androidx.compose.ui.node.NodeMeasuringIntrinsics.maxHeight$ui(LayoutModifierNode.kt:239) at androidx.compose.ui.node.LayoutModifierNode.maxIntrinsicHeight(LayoutModifierNode.kt:120) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.maxIntrinsicHeight(LayoutModifierNodeCoordinator.kt:151) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.maxIntrinsicHeight(LayoutNodeLayoutDelegate.kt:726) at androidx.compose.ui.layout.DefaultIntrinsicMeasurable.measure-BRTryo0(Layout.kt:322) at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1.measure-3p2s80s(Box.kt:114) at androidx.compose.ui.layout.MeasurePolicy.maxIntrinsicHeight(MeasurePolicy.kt:159) at androidx.compose.ui.node.IntrinsicsPolicy.maxIntrinsicHeight(IntrinsicsPolicy.kt:49) at androidx.compose.ui.node.InnerNodeCoordinator.maxIntrinsicHeight(InnerNodeCoordinator.kt:142) at androidx.compose.ui.node.NodeMeasuringIntrinsics$DefaultIntrinsicMeasurable.measure-BRTryo0(LayoutModifierNode.kt:262) at androidx.compose.foundation.layout.PaddingNode.measure-3p2s80s(Padding.kt:397) at androidx.compose.ui.node.LayoutModifierNode$maxIntrinsicHeight$1.measure-3p2s80s(LayoutModifierNode.kt:122) at androidx.compose.ui.node.NodeMeasuringIntrinsics.maxHeight$ui(LayoutModifierNode.kt:239) at androidx.compose.ui.node.LayoutModifierNode.maxIntrinsicHeight(LayoutModifierNode.kt:120) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.maxIntrinsicHeight(LayoutModifierNodeCoordinator.kt:151) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.maxIntrinsicHeight(LayoutNodeLayoutDelegate.kt:726) at androidx.compose.ui.layout.DefaultIntrinsicMeasurable.measure-BRTryo0(Layout.kt:322) at androidx.compose.material3.TabKt$TabBaselineLayout$2$1.measure-3p2s80s(Tab.kt:323) at androidx.compose.ui.layout.MeasurePolicy.maxIntrinsicHeight(MeasurePolicy.kt:159) at androidx.compose.ui.node.IntrinsicsPolicy.maxIntrinsicHeight(IntrinsicsPolicy.kt:49) at androidx.compose.ui.node.InnerNodeCoordinator.maxIntrinsicHeight(InnerNodeCoordinator.kt:142) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.maxIntrinsicHeight(LayoutNodeLayoutDelegate.kt:726) at androidx.compose.foundation.layout.IntrinsicMeasureBlocks$VerticalMaxHeight$1$1.invoke(RowColumnImpl.kt:525) at androidx.compose.foundation.layout.IntrinsicMeasureBlocks$VerticalMaxHeight$1$1.invoke(RowColumnImpl.kt:523) at androidx.compose.foundation.layout.RowColumnImplKt.intrinsicMainAxisSize(RowColumnImpl.kt:566) at androidx.compose.foundation.layout.RowColumnImplKt.intrinsicSize(RowColumnImpl.kt:544) at androidx.compose.foundation.layout.RowColumnImplKt.access$intrinsicSize(RowColumnImpl.kt:1) at androidx.compose.foundation.layout.IntrinsicMeasureBlocks$VerticalMaxHeight$1.invoke(RowColumnImpl.kt:523) at androidx.compose.foundation.layout.IntrinsicMeasureBlocks$VerticalMaxHeight$1.invoke(RowColumnImpl.kt:522) at androidx.compose.foundation.layout.RowColumnImplKt$rowColumnMeasurePolicy$1.maxIntrinsicHeight(RowColumnImpl.kt:125) at androidx.compose.ui.node.IntrinsicsPolicy.maxIntrinsicHeight(IntrinsicsPolicy.kt:49) at androidx.compose.ui.node.InnerNodeCoordinator.maxIntrinsicHeight(InnerNodeCoordinator.kt:142) at androidx.compose.ui.node.NodeMeasuringIntrinsics$DefaultIntrinsicMeasurable.measure-BRTryo0(LayoutModifierNode.kt:262) at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:698) at androidx.compose.ui.node.LayoutModifierNode$maxIntrinsicHeight$1.measure-3p2s80s(LayoutModifierNode.kt:122) at androidx.compose.ui.node.NodeMeasuringIntrinsics.maxHeight$ui(LayoutModifierNode.kt:239) at androidx.compose.ui.node.LayoutModifierNode.maxIntrinsicHeight(LayoutModifierNode.kt:120) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.maxIntrinsicHeight(LayoutModifierNodeCoordinator.kt:151) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.maxIntrinsicHeight(LayoutNodeLayoutDelegate.kt:726) at androidx.compose.material3.TabRowKt$TabRow$2$1$1.invoke-0kLqBqw(TabRow.kt:157) at androidx.compose.material3.TabRowKt$TabRow$2$1$1.invoke(TabRow.kt:148) at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure-3p2s80s(SubcomposeLayout.kt:866) at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126) at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:698) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1499) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1495) 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.node.OwnerSnapshotObserver.observeReads$ui(OwnerSnapshotObserver.kt:133) at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui(OwnerSnapshotObserver.kt:113) at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1495) at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:35) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:560) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:539) at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1.measure-3p2s80s(Box.kt:114) at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126) at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:646) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116) at androidx.compose.foundation.layout.SizeNode.measure-3p2s80s(Size.kt:837) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116) at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:698) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1499) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1495) 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.node.OwnerSnapshotObserver.observeReads$ui(OwnerSnapshotObserver.kt:133) at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui(OwnerSnapshotObserver.kt:113) at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1495) at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:35) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:560) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:539) at androidx.compose.foundation.layout.RowColumnMeasurementHelper.measureWithoutPlacing-_EkL_-Y(RowColumnMeasurementHelper.kt:112) at androidx.compose.foundation.layout.RowColumnImplKt$rowColumnMeasurePolicy$1.measure-3p2s80s(RowColumnImpl.kt:72) at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126) at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:698) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1499) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1495) 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.node.OwnerSnapshotObserver.observeReads$ui(OwnerSnapshotObserver.kt:133) at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui(OwnerSnapshotObserver.kt:113) at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1495) at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:35) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:560) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:539) at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1.measure-3p2s80s(Box.kt:114) at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126) at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:646) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1499) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1495) 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.node.OwnerSnapshotObserver.observeReads$ui(OwnerSnapshotObserver.kt:133) at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui(OwnerSnapshotObserver.kt:113) at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1495) at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:35) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:560) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:539) at androidx.compose.ui.awt.ComposeWindowDelegate$WindowContentLayout$2.measure-3p2s80s(ComposeWindowDelegate.desktop.kt:195) at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1499) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1495) 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.node.OwnerSnapshotObserver.observeReads$ui(OwnerSnapshotObserver.kt:133) at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui(OwnerSnapshotObserver.kt:113) at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1495) at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:35) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:560) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:539) at androidx.compose.ui.layout.RootMeasurePolicy.measure-3p2s80s(RootMeasurePolicy.kt:38) at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1499) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1495) 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.node.OwnerSnapshotObserver.observeReads$ui(OwnerSnapshotObserver.kt:133) at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui(OwnerSnapshotObserver.kt:113) at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1495) at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:35) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:560) at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui(LayoutNode.kt:1140) at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA(MeasureAndLayoutDelegate.kt:321) at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:458) at androidx.compose.ui.node.MeasureAndLayoutDelegate.access$remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:39) at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:344) at androidx.compose.ui.platform.SkiaBasedOwner.measureAndLayout(SkiaBasedOwner.skiko.kt:246) at androidx.compose.ui.node.Owner.measureAndLayout$default(Owner.kt:223) at androidx.compose.ui.ComposeScene.render(ComposeScene.skiko.kt:546) at androidx.compose.ui.awt.ComposeBridge$skikoView$1$onRender$1.invoke(ComposeBridge.desktop.kt:178) at androidx.compose.ui.awt.ComposeBridge$skikoView$1$onRender$1.invoke(ComposeBridge.desktop.kt:177) at androidx.compose.ui.awt.ComposeBridge.catchExceptions(ComposeBridge.desktop.kt:150) at androidx.compose.ui.awt.ComposeBridge.access$catchExceptions(ComposeBridge.desktop.kt:64) at androidx.compose.ui.awt.ComposeBridge$skikoView$1.onRender(ComposeBridge.desktop.kt:177) at org.jetbrains.skiko.SkiaLayer.update$skiko(SkiaLayer.awt.kt:548) at org.jetbrains.skiko.redrawer.AWTRedrawer.update(AWTRedrawer.kt:54) at org.jetbrains.skiko.redrawer.LinuxOpenGLRedrawer.redrawImmediately(LinuxOpenGLRedrawer.kt:83) at org.jetbrains.skiko.SkiaLayer.paint(SkiaLayer.awt.kt:388) at androidx.compose.ui.awt.WindowComposeBridge$component$1.paint(WindowComposeBridge.desktop.kt:62) at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) at java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) at java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:586) at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) at java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) at androidx.compose.ui.window.Window_desktopKt$Window$12$1.invoke(Window.desktop.kt:433) at androidx.compose.ui.window.Window_desktopKt$Window$12$1.invoke(Window.desktop.kt:418) at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$3.invoke(AwtWindow.desktop.kt:78) at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$3.invoke(AwtWindow.desktop.kt:76) 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:108) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) 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:742) 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: java.util.NoSuchElementException: Array is empty. at kotlin.collections.ArraysKt___ArraysKt.first(_Arrays.kt:1012) at androidx.compose.ui.text.platform.FontCache.loadPlatformTypes-RetOiIg$ui_text(PlatformFont.skiko.kt:173) at androidx.compose.ui.text.font.SkiaFontLoader.loadPlatformTypes-RetOiIg$ui_text(SkiaFontLoader.skiko.kt:58) at androidx.compose.ui.text.font.PlatformFontFamilyTypefaceAdapter.resolve(PlatformFontFamilyTypefaceAdapter.skiko.kt:30) at androidx.compose.ui.text.font.FontFamilyResolverImpl$resolve$result$1.invoke(FontFamilyResolver.kt:98) at androidx.compose.ui.text.font.FontFamilyResolverImpl$resolve$result$1.invoke(FontFamilyResolver.kt:92) at androidx.compose.ui.text.font.TypefaceRequestCache.runCached(FontFamilyResolver.kt:185) ... 210 more Error: The application has experienced an internal error and must quit. java.lang.IllegalStateException: Could not load font @ androidx.compose.ui.text.font.TypefaceRequestCache.runCached(FontFamilyResolver.kt:200) ```
zacharee commented 8 months ago

Can you tell me:

Vosjedev commented 8 months ago

Which version of Arch are you using?

The latest, I installed a couple of months ago, but kept updating since then. As far as I know arch does not have os versions the way ubuntu/debian/fedora for example has them, the only version is the ISO. Edit: Just looked this up, it indeed doesn't have a version, it's a rolling release distro.

Which window manager are you running?

hyprland 0.33.1-2

Which desktop environment are you using?

None.

zacharee commented 8 months ago

Trying on Arch with KDE, Bifrost launches and runs just fine.

I haven't been able to get an instance of Hyprland working to test. Arch base + manual install crashes randomly and silently fails to launch Bifrost. ArcolinuxB boots to a black screen on the live image.

I don't think this is something I can fix, unfortunately.

Vosjedev commented 7 months ago

Wel, thanks for attempting to reproduce, than. I guess I will find out what's wrong myself. What fonts are used? I suppose one is missing.

zacharee commented 7 months ago

It looks like it's looking for either "Noto Sans" or "DejaVu Sans" on Linux.

Vosjedev commented 7 months ago

I installed DejaVu Sans, and now it works! Thank you!

zacharee commented 7 months ago

I'm going to try adding my own mapping to fall back to Arial for sans-serif, Times New Roman for serif, and Consolas for monospace, since those aren't part of what Compose looks for on Linux by default, and apparently it doesn't degrade gracefully for missing fonts.

Vosjedev commented 7 months ago

Is it not posible to specify sans-serif, serif, and mono as fonts to let the system decide what it has like in CSS?

zacharee commented 7 months ago

Not that I can tell. Generic font families are narrowed down to specific lists depending on the platform inside of Compose. I'm not sure if this is a limitation of Skia, Skiko, Compose, or Java.