moko-resources
moko-resources copied to clipboard
Using resources breaks compose desktop preview
When trying to use both moko-resources for compose and desktop preview I get an error. After IDE restart preview works once and breaks again after refreshing. This doesn't happen when no resources are used in previewed composable.
Versions: kotlin=1.8.21 jvmToolchain=17 compose multiplatform=1.4.0 moko resources=0.22.3
Preview code:
@Preview
@Composable
fun ListingScreenPreview() {
Text(stringResource(MR.strings.app_name))
}
Stacktrace:
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.jetbrains.compose.desktop.ui.tooling.preview.rpc.PreviewHost.renderFrame(RemotePreviewHost.kt:161)
at org.jetbrains.compose.desktop.ui.tooling.preview.rpc.PreviewHost.renderFrame(RemotePreviewHost.kt:129)
at org.jetbrains.compose.desktop.ui.tooling.preview.rpc.PreviewHost.access$renderFrame(RemotePreviewHost.kt:47)
at org.jetbrains.compose.desktop.ui.tooling.preview.rpc.PreviewHost$senderThread$1.invoke(RemotePreviewHost.kt:63)
at org.jetbrains.compose.desktop.ui.tooling.preview.rpc.PreviewHost$senderThread$1.invoke(RemotePreviewHost.kt:56)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at androidx.compose.ui.tooling.ComposableInvoker.invokeComposableMethod(ComposableInvoker.kt:163)
at androidx.compose.ui.tooling.ComposableInvoker.invokeComposable(ComposableInvoker.kt:203)
at androidx.compose.desktop.ui.tooling.preview.runtime.NonInteractivePreviewFacade$Companion$render$1.invoke(NonInteractivePreviewFacade.kt:57)
at androidx.compose.desktop.ui.tooling.preview.runtime.NonInteractivePreviewFacade$Companion$render$1.invoke(NonInteractivePreviewFacade.kt:53)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
at androidx.compose.ui.ComposeScene$setContent$5.invoke(ComposeScene.skiko.kt:377)
at androidx.compose.ui.ComposeScene$setContent$5.invoke(ComposeScene.skiko.kt:376)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
at androidx.compose.ui.platform.CompositionLocalsKt.ProvideCommonCompositionLocals(CompositionLocals.kt:194)
at androidx.compose.ui.platform.Wrapper_skikoKt$setContent$2$1.invoke(Wrapper.skiko.kt:47)
at androidx.compose.ui.platform.Wrapper_skikoKt$setContent$2$1.invoke(Wrapper.skiko.kt:46)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.ui.platform.Wrapper_skikoKt.provide(Wrapper.skiko.kt:63)
at androidx.compose.ui.platform.Wrapper_skikoKt.access$provide(Wrapper.skiko.kt:1)
at androidx.compose.ui.platform.Wrapper_skikoKt$setContent$2.invoke(Wrapper.skiko.kt:46)
at androidx.compose.ui.platform.Wrapper_skikoKt$setContent$2.invoke(Wrapper.skiko.kt:45)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.ActualJvm_jvmKt.invokeComposable(ActualJvm.jvm.kt:37)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3353)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3343)
at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:341)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source)
at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3343)
at androidx.compose.runtime.ComposerImpl.composeContent$runtime(Composer.kt:3278)
at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:587)
at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:966)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:519)
at androidx.compose.ui.platform.Wrapper_skikoKt.setContent(Wrapper.skiko.kt:45)
at androidx.compose.ui.ComposeScene.setContent$ui(ComposeScene.skiko.kt:373)
at androidx.compose.ui.ComposeScene.setContent$ui$default(ComposeScene.skiko.kt:351)
at androidx.compose.ui.ComposeScene.setContent(ComposeScene.skiko.kt:333)
at androidx.compose.ui.ImageComposeScene.<init>(ImageComposeScene.skikoMain.kt:120)
at androidx.compose.ui.ImageComposeScene.<init>(ImageComposeScene.skikoMain.kt:106)
at androidx.compose.ui.ImageComposeScene_skikoMainKt.renderComposeScene(ImageComposeScene.skikoMain.kt:60)
at androidx.compose.desktop.ui.tooling.preview.runtime.NonInteractivePreviewFacade$Companion.render(NonInteractivePreviewFacade.kt:53)
at androidx.compose.desktop.ui.tooling.preview.runtime.NonInteractivePreviewFacade.render(NonInteractivePreviewFacade.kt)
... 10 more
Caused by: java.util.MissingResourceException: Can't find bundle for base name localization/comsergeshustoffrpgtables_mokoBundle, locale en_GB
at java.base/java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:2045)
at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1683)
at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1586)
at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:1504)
at dev.icerock.moko.resources.ClassLoaderExtKt.getResourceBundle(ClassLoaderExt.kt:11)
at dev.icerock.moko.resources.StringResource.localized(StringResource.kt:15)
at dev.icerock.moko.resources.desc.ResourceStringDesc.localized(ResourceStringDesc.kt:14)
at dev.icerock.moko.resources.compose.StringResourceKt.stringResource(StringResource.kt:18)
at com.sergeshustoff.rpgtables.preview.ListingScreenPreviewKt.ListingScreenPreview(ListingScreenPreview.kt:15)
... 56 more
Caused by: java.util.zip.ZipException: ZipFile invalid LOC header (bad signature)
at java.base/java.util.zip.ZipFile$ZipFileInputStream.initDataOffset(ZipFile.java:920)
at java.base/java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:931)
at java.base/java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:448)
at java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at java.base/java.io.FilterInputStream.read(FilterInputStream.java:132)
at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270)
at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313)
at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)
at java.base/java.io.Reader.read(Reader.java:250)
at java.base/java.util.Properties$LineReader.readLine(Properties.java:505)
at java.base/java.util.Properties.load0(Properties.java:420)
at java.base/java.util.Properties.load(Properties.java:383)
at java.base/java.util.PropertyResourceBundle.<init>(PropertyResourceBundle.java:200)
at java.base/java.util.PropertyResourceBundle.<init>(PropertyResourceBundle.java:177)
at java.base/java.util.ResourceBundle$Control.newBundle0(ResourceBundle.java:3245)
at java.base/java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:3151)
at java.base/java.util.ResourceBundle.loadBundle(ResourceBundle.java:1984)
at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1770)
at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1722)
at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1722)
at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1656)
... 63 more