Describe the bug
Using Kotlin, when i try to execute rememberLauncherForActivityResult to select a file, while another rememberSheetState already exists, i got an exception
**Expected behavior**
Being able to have the date picker and file picker in the same page
**Affected Device(s):**
- Xiaomi Redmi 13C
**Additional notes:**
Probably the issue came from `rememberSheetState` because when i remove only the date picker, the entire form works fine
Make sure that both of fields should be rendered
**Screenshots**
Here is the full exception
FATAL EXCEPTION: main
Process: com.example.example, PID: 29163
android.os.BadParcelableException: Parcelable encountered IOException writing serializable object (name = com.maxkeppeker.sheets.core.models.base.SheetState$SheetStateData)
at android.os.Parcel.writeSerializable(Parcel.java:2751)
at android.os.Parcel.writeValue(Parcel.java:2517)
at android.os.Parcel.writeValue(Parcel.java:2316)
at android.os.Parcel.writeList(Parcel.java:1382)
at android.os.Parcel.writeValue(Parcel.java:2460)
at android.os.Parcel.writeValue(Parcel.java:2316)
at android.os.Parcel.writeMapInternal(Parcel.java:1233)
at android.os.Parcel.writeMap(Parcel.java:1215)
at android.os.Parcel.writeValue(Parcel.java:2430)
at android.os.Parcel.writeValue(Parcel.java:2316)
at android.os.Parcel.writeMapInternal(Parcel.java:1233)
at android.os.Parcel.writeMap(Parcel.java:1215)
at android.os.Parcel.writeValue(Parcel.java:2430)
at android.os.Parcel.writeValue(Parcel.java:2316)
at android.os.Parcel.writeList(Parcel.java:1382)
at android.os.Parcel.writeValue(Parcel.java:2460)
at android.os.Parcel.writeValue(Parcel.java:2316)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:1265)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1802)
at android.os.Bundle.writeToParcel(Bundle.java:1362)
at android.os.Parcel.writeBundle(Parcel.java:1334)
at android.os.Parcel.writeValue(Parcel.java:2433)
at android.os.Parcel.writeValue(Parcel.java:2323)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:1265)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1802)
at android.os.Bundle.writeToParcel(Bundle.java:1362)
at android.os.Parcel.writeBundle(Parcel.java:1334)
at android.os.Parcel.writeValue(Parcel.java:2433)
at android.os.Parcel.writeValue(Parcel.java:2323)
at android.os.BaseBundle.dumpStats(BaseBundle.java:1874)
at android.os.BaseBundle.dumpStats(BaseBundle.java:1911)
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:150)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at android.app.ActivityThread.main(ActivityThread.java:8324)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:581)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
Caused by: java.io.NotSerializableException: com.example.example.utils.forms.Field
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1240)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1620)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1581)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1490)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1234)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1620)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1581)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1490)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1234)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354)
at android.os.Parcel.writeSerializable(Parcel.java:2746)
at android.os.Parcel.writeValue(Parcel.java:2517)
at android.os.Parcel.writeValue(Parcel.java:2316)
at android.os.Parcel.writeList(Parcel.java:1382)
at android.os.Parcel.writeValue(Parcel.java:2460)
at android.os.Parcel.writeValue(Parcel.java:2316)
at android.os.Parcel.writeMapInternal(Parcel.java:1233)
at android.os.Parcel.writeMap(Parcel.java:1215)
at android.os.Parcel.writeValue(Parcel.java:2430)
at android.os.Parcel.writeValue(Parcel.java:2316)
at android.os.Parcel.writeMapInternal(Parcel.java:1233)
at android.os.Parcel.writeMap(Parcel.java:1215)
at android.os.Parcel.writeValue(Parcel.java:2430)
at android.os.Parcel.writeValue(Parcel.java:2316)
at android.os.Parcel.writeList(Parcel.java:1382)
at android.os.Parcel.writeValue(Parcel.java:2460)
at android.os.Parcel.writeValue(Parcel.java:2316)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:1265)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1802)
at android.os.Bundle.writeToParcel(Bundle.java:1362)
at android.os.Parcel.writeBundle(Parcel.java:1334)
at android.os.Parcel.writeValue(Parcel.java:2433)
at android.os.Parcel.writeValue(Parcel.java:2323)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:1265)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1802)
at android.os.Bundle.writeToParcel(Bundle.java:1362)
at android.os.Parcel.writeBundle(Parcel.java:1334)
at android.os.Parcel.writeValue(Parcel.java:2433)
at android.os.Parcel.writeValue(Parcel.java:2323)
at android.os.BaseBundle.dumpStats(BaseBundle.java:1874)
at android.os.BaseBundle.dumpStats(BaseBundle.java:1911)
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:150)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at android.app.ActivityThread.main(ActivityThread.java:8324)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:581)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
Describe the bug Using Kotlin, when i try to execute
rememberLauncherForActivityResult
to select a file, while anotherrememberSheetState
already exists, i got an exceptionLibrary Version:
To Reproduce Steps to reproduce the behavior:
Use the
rememberSheetState
somewhere (No need to open the date picker, just include the code to be executed)Use rememberLauncherForActivityResult() API to select files
val launcher = rememberLauncherForActivityResult( contract = ActivityResultContracts.OpenDocument(), onResult = { fileField.focus = false fileField.uri =it } )
Button(text = "Select file", onClick = { fileField.focus = true launcher.launch(arrayOf("application/pdf")) })
FATAL EXCEPTION: main Process: com.example.example, PID: 29163 android.os.BadParcelableException: Parcelable encountered IOException writing serializable object (name = com.maxkeppeker.sheets.core.models.base.SheetState$SheetStateData) at android.os.Parcel.writeSerializable(Parcel.java:2751) at android.os.Parcel.writeValue(Parcel.java:2517) at android.os.Parcel.writeValue(Parcel.java:2316) at android.os.Parcel.writeList(Parcel.java:1382) at android.os.Parcel.writeValue(Parcel.java:2460) at android.os.Parcel.writeValue(Parcel.java:2316) at android.os.Parcel.writeMapInternal(Parcel.java:1233) at android.os.Parcel.writeMap(Parcel.java:1215) at android.os.Parcel.writeValue(Parcel.java:2430) at android.os.Parcel.writeValue(Parcel.java:2316) at android.os.Parcel.writeMapInternal(Parcel.java:1233) at android.os.Parcel.writeMap(Parcel.java:1215) at android.os.Parcel.writeValue(Parcel.java:2430) at android.os.Parcel.writeValue(Parcel.java:2316) at android.os.Parcel.writeList(Parcel.java:1382) at android.os.Parcel.writeValue(Parcel.java:2460) at android.os.Parcel.writeValue(Parcel.java:2316) at android.os.Parcel.writeArrayMapInternal(Parcel.java:1265) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1802) at android.os.Bundle.writeToParcel(Bundle.java:1362) at android.os.Parcel.writeBundle(Parcel.java:1334) at android.os.Parcel.writeValue(Parcel.java:2433) at android.os.Parcel.writeValue(Parcel.java:2323) at android.os.Parcel.writeArrayMapInternal(Parcel.java:1265) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1802) at android.os.Bundle.writeToParcel(Bundle.java:1362) at android.os.Parcel.writeBundle(Parcel.java:1334) at android.os.Parcel.writeValue(Parcel.java:2433) at android.os.Parcel.writeValue(Parcel.java:2323) at android.os.BaseBundle.dumpStats(BaseBundle.java:1874) at android.os.BaseBundle.dumpStats(BaseBundle.java:1911) at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:150) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:211) at android.os.Looper.loop(Looper.java:300) at android.app.ActivityThread.main(ActivityThread.java:8324) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:581) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028) Caused by: java.io.NotSerializableException: com.example.example.utils.forms.Field at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1240) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1620) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1581) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1490) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1234) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1620) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1581) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1490) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1234) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at android.os.Parcel.writeSerializable(Parcel.java:2746) at android.os.Parcel.writeValue(Parcel.java:2517) at android.os.Parcel.writeValue(Parcel.java:2316) at android.os.Parcel.writeList(Parcel.java:1382) at android.os.Parcel.writeValue(Parcel.java:2460) at android.os.Parcel.writeValue(Parcel.java:2316) at android.os.Parcel.writeMapInternal(Parcel.java:1233) at android.os.Parcel.writeMap(Parcel.java:1215) at android.os.Parcel.writeValue(Parcel.java:2430) at android.os.Parcel.writeValue(Parcel.java:2316) at android.os.Parcel.writeMapInternal(Parcel.java:1233) at android.os.Parcel.writeMap(Parcel.java:1215) at android.os.Parcel.writeValue(Parcel.java:2430) at android.os.Parcel.writeValue(Parcel.java:2316) at android.os.Parcel.writeList(Parcel.java:1382) at android.os.Parcel.writeValue(Parcel.java:2460) at android.os.Parcel.writeValue(Parcel.java:2316) at android.os.Parcel.writeArrayMapInternal(Parcel.java:1265) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1802) at android.os.Bundle.writeToParcel(Bundle.java:1362) at android.os.Parcel.writeBundle(Parcel.java:1334) at android.os.Parcel.writeValue(Parcel.java:2433) at android.os.Parcel.writeValue(Parcel.java:2323) at android.os.Parcel.writeArrayMapInternal(Parcel.java:1265) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1802) at android.os.Bundle.writeToParcel(Bundle.java:1362) at android.os.Parcel.writeBundle(Parcel.java:1334) at android.os.Parcel.writeValue(Parcel.java:2433) at android.os.Parcel.writeValue(Parcel.java:2323) at android.os.BaseBundle.dumpStats(BaseBundle.java:1874) at android.os.BaseBundle.dumpStats(BaseBundle.java:1911) at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:150) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:211) at android.os.Looper.loop(Looper.java:300) at android.app.ActivityThread.main(ActivityThread.java:8324) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:581) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)