I am stumped on this particular issue and could really use some help.
The movie detail screen of my application receives two integers from the MainActivity through an intent. One of those integers is the unique ID that is used to query the SQLite database, which is stored on the user's device, for the full details of the movie chosen by the user.
When the database reaches 35-40 movies a TransactionTooLargeException error will occur and crash my application. After some thorough testing, I am unable to find why this error is occurring.
What I know: the error occurs after the DB is queried and after the UI is updated with the details from the DB's query (see below for the error stack).
Can anyone help me figure out why this error is occurring?
06-25 22:12:21.099 29350-29350/jkaps9.movieapp E/LC: Main onCreate
06-25 22:12:22.315 29350-29350/jkaps9.movieapp E/MovieFragment: Num movies: 40
06-25 22:12:31.891 29350-29350/jkaps9.movieapp E/LC: MovieAdapter - sending intent to detail
06-25 22:12:31.930 29350-29350/jkaps9.movieapp E/LC: Main onPause
06-25 22:12:32.053 29350-29350/jkaps9.movieapp E/LC: Detail onCreate
06-25 22:12:32.222 29350-29350/jkaps9.movieapp E/LC: Detail onResume
06-25 22:12:32.314 29350-29350/jkaps9.movieapp E/DB: querying DB for movie details
06-25 22:12:32.378 29350-29350/jkaps9.movieapp E/Detail: Getting movie from DB
06-25 22:12:32.378 29350-29350/jkaps9.movieapp E/Detail: Updating UI with movie details
06-25 22:12:32.383 29350-29350/jkaps9.movieapp E/Detail: Finished updating UI with movie details
06-25 22:12:32.415 29350-29350/jkaps9.movieapp E/ViewRootImpl: sendUserActionEvent() mView == null
06-25 22:12:32.505 29350-29350/jkaps9.movieapp E/ViewRootImpl: sendUserActionEvent() mView == null
06-25 22:12:33.200 29350-29350/jkaps9.movieapp E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 532192)
06-25 22:12:33.201 29350-29350/jkaps9.movieapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: jkaps9.movieapp, PID: 29350
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 532192 bytes
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4211)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6688)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
Caused by: android.os.TransactionTooLargeException: data parcel size 532192 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:628)
at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:4132)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4203)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6688)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)