eygraber
12/30/2021, 9:41 PMParcelize
for a while now. It happens very infrequently, and I've never been able to repro it.
Seems to only happen on Android 9 and Android 11 across all manufacturers (although that could be the small sample size coming into play).
The code is:
interface State : Parcelable
interface StringId {
val raw: String
}
@Parcelize
internal data class MyState(
val personId: PersonId?
) : State
@JvmInline
value class PersonId(override val raw: String) : StringId
Stacktrace in 🧵eygraber
12/30/2021, 9:43 PMFatal Exception: java.lang.RuntimeException
Parcel: unable to marshal value PersonId(raw=83115d1f-5d7a-4567-bb4d-ba47c118b35f)
android.os.Parcel.writeValue (Parcel.java:1897)
com.myapp.MyState.writeToParcel (MyState.kt:2)
android.os.Parcel.writeParcelable (Parcel.java:1916)
android.os.Parcel.writeValue (Parcel.java:1822)
android.os.Parcel.writeArrayMapInternal (Parcel.java:987)
android.os.BaseBundle.writeToParcelInner (BaseBundle.java:1620)
android.os.Bundle.writeToParcel (Bundle.java:1303)
android.os.Parcel.writeBundle (Parcel.java:1056)
android.os.Parcel.writeValue (Parcel.java:1813)
android.os.Parcel.writeArrayMapInternal (Parcel.java:987)
android.os.BaseBundle.writeToParcelInner (BaseBundle.java:1620)
android.os.Bundle.writeToParcel (Bundle.java:1303)
android.os.Parcel.writeBundle (Parcel.java:1056)
androidx.fragment.app.FragmentState.writeToParcel (FragmentState.java:161)
android.os.Parcel.writeTypedObject (Parcel.java:1749)
android.os.Parcel.writeTypedList (Parcel.java:1628)
android.os.Parcel.writeTypedList (Parcel.java:1585)
androidx.fragment.app.FragmentManagerState.writeToParcel (FragmentManagerState.java:64)
android.os.Parcel.writeParcelable (Parcel.java:1916)
android.os.Parcel.writeValue (Parcel.java:1822)
android.os.Parcel.writeArrayMapInternal (Parcel.java:987)
android.os.BaseBundle.writeToParcelInner (BaseBundle.java:1620)
android.os.Bundle.writeToParcel (Bundle.java:1303)
android.os.Parcel.writeBundle (Parcel.java:1056)
android.os.Parcel.writeValue (Parcel.java:1813)
android.os.Parcel.writeArrayMapInternal (Parcel.java:987)
android.os.BaseBundle.writeToParcelInner (BaseBundle.java:1620)
android.os.Bundle.writeToParcel (Bundle.java:1303)
android.os.Parcel.writeBundle (Parcel.java:1056)
android.os.Parcel.writeValue (Parcel.java:1813)
android.os.Parcel.writeArrayMapInternal (Parcel.java:987)
android.os.BaseBundle.writeToParcelInner (BaseBundle.java:1620)
android.os.Bundle.writeToParcel (Bundle.java:1303)
android.app.IActivityTaskManager$Stub$Proxy.activityStopped (IActivityTaskManager.java:4969)
android.app.servertransaction.PendingTransactionActions$StopInfo.run (PendingTransactionActions.java:145)
android.os.Handler.handleCallback (Handler.java:938)
android.os.Handler.dispatchMessage (Handler.java:99)
android.os.Looper.loop (Looper.java:246)
android.app.ActivityThread.main (ActivityThread.java:8633)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
eygraber
12/30/2021, 9:44 PMeygraber
12/30/2021, 9:55 PM