我将我的Android应用程序定位为Nougat,我开始在(我相信)onSaveInstance片段状态期间获取TransactionTooLarge异常。我说“我相信”,因为我不确定它在哪里发生。这是崩溃期间的示例堆栈跟踪:
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 835604 bytes
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3806)
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:6120)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: android.os.TransactionTooLargeException: data parcel size 835604 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:615)
at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3621)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3798)
... 7 more
android.os.TransactionTooLargeException: data parcel size 835604 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:615)
at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3621)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3798)
问题:此堆栈跟踪中的任何内容都没有告诉我哪个parcel导致了异常,也没有告诉我代码中的哪一行导致异常。在研究例外情况时,很明显我必须减少太大的包裹的大小,但是我猜测违规包裹的尝试并没有解决问题。有没有办法让Android Studio确切地确定导致问题的包裹?