Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash when take picture #466

Open
hafiz013 opened this issue Jul 31, 2024 · 4 comments
Open

Crash when take picture #466

hafiz013 opened this issue Jul 31, 2024 · 4 comments

Comments

@hafiz013
Copy link

Hi i am using voyager screen and tab. When I use this sample camera, and gallery from this sample :
kmpPickupImageCamera

got sample crash like this:

FATAL EXCEPTION: main (Ask Gemini)
                                                                                                    Process: com.kloudius.katmaans, PID: 4348
                                                                                                    android.os.BadParcelableException: Parcelable encountered IOException writing serializable object (name = com.kloudius.katmaans.presentation.screens.MainActivity)
                                                                                                    	at android.os.Parcel.writeSerializable(Parcel.java:2809)
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2575)
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2374)
                                                                                                    	at android.os.Parcel.writeList(Parcel.java:1427)
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2518)
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2374)
                                                                                                    	at android.os.Parcel.writeList(Parcel.java:1427)
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2518)
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2374)
                                                                                                    	at android.os.Parcel.writeArrayMapInternal(Parcel.java:1310)
                                                                                                    	at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1843)
                                                                                                    	at android.os.Bundle.writeToParcel(Bundle.java:1389)
                                                                                                    	at android.os.Parcel.writeBundle(Parcel.java:1379)
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2491)
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2381)
                                                                                                    	at android.os.Parcel.writeArrayMapInternal(Parcel.java:1310)
                                                                                                    	at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1843)
                                                                                                    	at android.os.Bundle.writeToParcel(Bundle.java:1389)
                                                                                                    	at android.os.Parcel.writeBundle(Parcel.java:1379)
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2491)
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2381)
                                                                                                    	at android.os.BaseBundle.dumpStats(BaseBundle.java:1917)
                                                                                                    	at android.os.BaseBundle.dumpStats(BaseBundle.java:1954)
                                                                                                    	at android.app.servertransaction.PendingTransactionActions$StopInfo.collectBundleStates(PendingTransactionActions.java:123)
                                                                                                    	at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:139)
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:230)
                                                                                                    	at android.os.Looper.loop(Looper.java:319)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:8919)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
                                                                                                    Caused by: java.io.NotSerializableException: cafe.adriel.voyager.navigator.Navigator
                                                                                                    	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.writeObject(ObjectOutputStream.java:354)
                                                                                                    	at android.os.Parcel.writeSerializable(Parcel.java:2804)
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2575) 
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2374) 
                                                                                                    	at android.os.Parcel.writeList(Parcel.java:1427) 
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2518) 
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2374) 
                                                                                                    	at android.os.Parcel.writeList(Parcel.java:1427) 
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2518) 
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2374) 
                                                                                                    	at android.os.Parcel.writeArrayMapInternal(Parcel.java:1310) 
                                                                                                    	at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1843) 
                                                                                                    	at android.os.Bundle.writeToParcel(Bundle.java:1389) 
                                                                                                    	at android.os.Parcel.writeBundle(Parcel.java:1379) 
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2491) 
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2381) 
                                                                                                    	at android.os.Parcel.writeArrayMapInternal(Parcel.java:1310) 
                                                                                                    	at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1843) 
                                                                                                    	at android.os.Bundle.writeToParcel(Bundle.java:1389) 
                                                                                                    	at android.os.Parcel.writeBundle(Parcel.java:1379) 
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2491) 
                                                                                                    	at android.os.Parcel.writeValue(Parcel.java:2381) 
                                                                                                    	at android.os.BaseBundle.dumpStats(BaseBundle.java:1917) 
                                                                                                    	at android.os.BaseBundle.dumpStats(BaseBundle.java:1954) 
                                                                                                    	at android.app.servertransaction.PendingTransactionActions$StopInfo.collectBundleStates(PendingTransactionActions.java:123) 
                                                                                                    	at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:139) 
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:958) 
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:230) 
                                                                                                    	at android.os.Looper.loop(Looper.java:319) 
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:8919) 
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578) 
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103) 

This is happen when want to change from screen into camera. any idea about this?

@hafiz013
Copy link
Author

Sample code android:

@Composable
actual fun rememberCameraManager(onResult: (SharedImage?) -> Unit): CameraManager {
    val context = LocalContext.current
    val contentResolver: ContentResolver = context.contentResolver
    var tempPhotoUri by remember { mutableStateOf(value = Uri.EMPTY) }
    val cameraLauncher = rememberLauncherForActivityResult(
        contract = ActivityResultContracts.TakePicture(),
        onResult = { success ->
            if (success) {
                onResult.invoke(
                    SharedImage(
                        BitmapUtils.getBitmapFromUri(
                            tempPhotoUri,
                            contentResolver
                        )
                    )
                )
            }
        }
    )
    return remember {
        CameraManager(
            onLaunch = {
                try {
                    tempPhotoUri = ComposeFileProvider.getImageUri(context)
                    cameraLauncher.launch(tempPhotoUri) <-- I got crash here
                }catch (e:Exception){
                    e.message.toString()
                }
            }
        )
    }
}

actual class CameraManager actual constructor(
    private val onLaunch: () -> Unit
) {
    actual fun launch() {
        onLaunch()
    }
}

@hafiz013
Copy link
Author

@adrielcafe any idea?

@Syer10
Copy link
Contributor

Syer10 commented Jul 31, 2024

open lateinit var navigator: Navigator

This is not serializable

@hafiz013
Copy link
Author

hafiz013 commented Aug 1, 2024

@Syer10 should remove?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants