0

one of our Android application is crashing sometimes with TransactionTooLargeException as we are putting an ArrayList of approx size 500 (Shallow Size of 85,000 / Retained size of 1,400,000). I understand that we need to use DataStore or Room DB instead of intent.putExtras(bundle). Any suggestion on which method is ideal for this type of scenario? and if you can point me to a good resource on how to implement it in SDK 33?

Transaction too large, intent: Intent { cmp=client.*****/.********* (has extras) }, extras size: 603940, icicle size: 0
14:19:54.677  E  Second failure launching client.*****/.********, giving up
                 android.os.TransactionTooLargeException: data parcel size 606852 bytes
                    at android.os.BinderProxy.transactNative(Native Method)
                    at android.os.BinderProxy.transact(BinderProxy.java:653)
                    at android.app.IApplicationThread$Stub$Proxy.scheduleTransaction(IApplicationThread.java:2031)
                    at android.app.servertransaction.ClientTransaction.schedule(ClientTransaction.java:136)
                    at com.android.server.wm.ClientLifecycleManager.scheduleTransaction(ClientLifecycleManager.java:47)
                    at com.android.server.wm.ActivityTaskSupervisor.realStartActivityLocked(ActivityTaskSupervisor.java:1063)
                    at com.android.server.wm.RootWindowContainer$AttachApplicationHelper.test(RootWindowContainer.java:4219)
                    at com.android.server.wm.RootWindowContainer$AttachApplicationHelper.test(RootWindowContainer.java:4169)
                    at com.android.server.wm.ActivityRecord.forAllActivities(ActivityRecord.java:5362)
                    at com.android.server.wm.WindowContainer.forAllActivities(WindowContainer.java:1712)
                    at com.android.server.wm.WindowContainer.forAllActivities(WindowContainer.java:1706)
                    at com.android.server.wm.RootWindowContainer$AttachApplicationHelper.accept(RootWindowContainer.java:4207)
                    at com.android.server.wm.RootWindowContainer$AttachApplicationHelper.accept(RootWindowContainer.java:4169)
                    at com.android.server.wm.Task.forAllRootTasks(Task.java:4033)
                    at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:2088)
                    at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:2088)
                    at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:2088)
                    at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:2088)
                    at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:2088)
                    at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:2088)
                    at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:2081)
                    at com.android.server.wm.RootWindowContainer$AttachApplicationHelper.process(RootWindowContainer.java:4185)
                    at com.android.server.wm.RootWindowContainer.attachApplication(RootWindowContainer.java:2203)
                    at com.android.server.wm.ActivityTaskManagerService$LocalService.attachApplication(ActivityTaskManagerService.java:7573)
                    at com.android.server.am.ActivityManagerService.attachApplicationLocked(ActivityManagerService.java:5782)
                    at com.android.server.am.ActivityManagerService.attachApplication(ActivityManagerService.java:5890)
                    at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2764)
                    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3077)
                    at android.os.Binder.execTransactInternal(Binder.java:1316)
                    at android.os.Binder.execTransact(Binder.java:1280)

0 Answers0