Olivier Patry
06/23/2023, 7:39 AM1.0.0
, it's fine, but with 2.0.0-beta-01
, I have a crash with distributable release build (fine in release build), it seems to only occur after a transition from one screen to the other.
SwingMainThreadChecker not found
`2.0.0-beta-01`:
• ./gradlew :dlvr-editor:runReleaseDistributable
💥
• ./gradlew :dlvr-editor:runRelease
✅
`1.0.0`:
• ./gradlew :dlvr-editor:runReleaseDistributable
✅
• ./gradlew :dlvr-editor:runRelease
✅Olivier Patry
06/23/2023, 7:46 AMOlivier Patry
06/23/2023, 7:47 AMArkadii Ivanov
06/23/2023, 8:07 AMOlivier Patry
06/23/2023, 9:12 PMArkadii Ivanov
06/25/2023, 1:59 PMSwingMainThreadChecker
, the same issue usually happens with SwingDispatcherFactory
. Try adding the following rule to your ProGuard config file:
-keep class com.arkivanov.decompose.extensions.compose.jetbrains.mainthread.SwingMainThreadChecker
Arkadii Ivanov
06/25/2023, 2:12 PMOlivier Patry
06/26/2023, 7:20 AMException in thread "AWT-EventQueue-0" java.util.ServiceConfigurationError: com.arkivanov.decompose.mainthread.MainThreadChecker: Provider com.arkivanov.decompose.extensions.compose.jetbrains.mainthread.SwingMainThreadChecker not found
at java.base/java.util.ServiceLoader.fail(Unknown Source)
at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(Unknown Source)
at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(Unknown Source)
at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(Unknown Source)
at java.base/java.util.ServiceLoader$2.hasNext(Unknown Source)
at java.base/java.util.ServiceLoader$3.hasNext(Unknown Source)
at kotlin.collections.CollectionsKt___CollectionsKt.firstOrNull(_Collections.kt:270)
at com.arkivanov.decompose.mainthread.MainThreadCheckerProviderKt$mainThreadChecker$2.invoke(MainThreadCheckerProvider.kt:1006)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at com.arkivanov.decompose.mainthread.MainThreadCheckerProviderKt.getMainThreadChecker(MainThreadCheckerProvider.kt:5)
at com.arkivanov.decompose.Relay.accept(Relay.kt:2006)
at com.arkivanov.decompose.router.stack.DefaultStackNavigation.navigate(DefaultStackNavigation.kt:11)
at com.arkivanov.decompose.router.stack.StackNavigatorExtKt.push$default$42c8ac6c(StackNavigatorExt.kt:1016)
at org.acme.tool.dlvr.ui.ProductDeliveryEditorKt$ProductDeliveryEditor$1$1$1$2$2.invoke(ProductDeliveryEditor.kt:1094)
at org.acme.tool.dlvr.ui.screen.ProjectChoiceScreenKt$ChooseProjectScreen$1$1.invokeSuspend(projectChoiceScreen.kt:91)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at androidx.compose.ui.platform.FlushCoroutineDispatcher$dispatch$2$1.invoke(FlushCoroutineDispatcher.skiko.kt:62)
at androidx.compose.ui.platform.FlushCoroutineDispatcher$dispatch$2$1.invoke(FlushCoroutineDispatcher.skiko.kt:57)
at androidx.compose.ui.platform.FlushCoroutineDispatcher.performRun(FlushCoroutineDispatcher.skiko.kt:91)
at androidx.compose.ui.platform.FlushCoroutineDispatcher.access$performRun(FlushCoroutineDispatcher.skiko.kt:37)
at androidx.compose.ui.platform.FlushCoroutineDispatcher$dispatch$2.invokeSuspend(FlushCoroutineDispatcher.skiko.kt:57)
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(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.awt.ComposeLayer$coroutineExceptionHandler$1@58893166, androidx.compose.runtime.BroadcastFrameClock@3069faa0, StandaloneCoroutine{Cancelling}@3afc866e, FlushCoroutineDispatcher@1d6f0299]
Arkadii Ivanov
06/26/2023, 8:14 AMOlivier Patry
06/26/2023, 9:25 AMOlivier Patry
06/26/2023, 9:26 AMArkadii Ivanov
06/26/2023, 9:27 AM