-
Notifications
You must be signed in to change notification settings - Fork 513
Description
My app crashes when the state contains an object from androidx.compose.ui.graphics.Color. It's kind of a pain because I need to store it as a string and then build a Color object with it when I need it.
I'm curious what it is about this class that it doesn't like so that I can avoid certain classes in the future. Here is the stack trace. The exception doesn't mention anything about the Color class, but if I replace this with a String, everything works fine.
stacktrace:
FATAL EXCEPTION: main Process: com.outdoorsy.wheelbase.debug, PID: 14606 java.lang.IllegalStateException: Failed to create initial state! at com.airbnb.mvrx.MavericksStateFactoryKt.createStateFromConstructor(MavericksStateFactory.kt:94) at com.airbnb.mvrx.RealMavericksStateFactory.createInitialState(MavericksStateFactory.kt:29) at com.airbnb.mvrx.MavericksFactoryKt.createViewModel(MavericksFactory.kt:41) at com.airbnb.mvrx.MavericksFactoryKt.access$createViewModel(MavericksFactory.kt:1) at com.airbnb.mvrx.MavericksFactory.create(MavericksFactory.kt:22) at androidx.lifecycle.ViewModelProvider$Factory.create(ViewModelProvider.android.kt:148) at androidx.lifecycle.ViewModelProvider$Factory.create(ViewModelProvider.android.kt:153) at androidx.lifecycle.viewmodel.ViewModelProviderImpl_androidKt.createViewModel(ViewModelProviderImpl.android.kt:34) at androidx.lifecycle.viewmodel.ViewModelProviderImpl.getViewModel$lifecycle_viewmodel_release(ViewModelProviderImpl.kt:60) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.android.kt:125) at com.airbnb.mvrx.MavericksViewModelProvider.get(MavericksViewModelProvider.kt:63) at com.airbnb.mvrx.MavericksViewModelProvider.get$default(MavericksViewModelProvider.kt:31) at com.outdoorsy.ui.host_calendar.BookingsCalendarFragment$special$$inlined$fragmentViewModel$default$1.invoke(MavericksExtensions.kt:42) at com.outdoorsy.ui.host_calendar.BookingsCalendarFragment$special$$inlined$fragmentViewModel$default$1.invoke(MavericksExtensions.kt:37) at com.airbnb.mvrx.DefaultViewModelDelegateFactory$createLazyViewModel$1.invoke(ViewModelDelegateProvider.kt:93) at com.airbnb.mvrx.DefaultViewModelDelegateFactory$createLazyViewModel$1.invoke(ViewModelDelegateProvider.kt:92) at com.airbnb.mvrx.lifecycleAwareLazy.getValue(lifecycleAwareLazy.kt:79) at com.airbnb.mvrx.lifecycleAwareLazy$initializeWhenCreated$1.onCreate(lifecycleAwareLazy.kt:52) at androidx.lifecycle.DefaultLifecycleObserverAdapter.onStateChanged(DefaultLifecycleObserverAdapter.kt:24) at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.jvm.kt:313) at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.jvm.kt:251) at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.jvm.kt:288) at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.jvm.kt:135) at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.jvm.kt:119) at androidx.fragment.app.Fragment.performCreate(Fragment.java:3105) at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:524) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2214) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2115) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2052) at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:703) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7839) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) Caused by: java.lang.InstantiationException: java.lang.Class<com.outdoorsy.ui.host_calendar.BookingsCalendarState> has no zero argument constructor at java.lang.Class.newInstance(Native Method) at com.airbnb.mvrx.MavericksStateFactoryKt.createStateFromConstructor(MavericksStateFactory.kt:79) ... 38 more