我遇到这个异常在Android 7.0以上会出现,而在Android 7.0以下则没有出现问题,网上都是说页面跳转intent数据过大的原因,这确实是一个原因,刚开始我也是按照这个方向去找问题的,我确实在跳转的时候带了数据 ,我以为问题就此引刃而解,但是,我不带数据也会出现这样的问题,我把数据设置静态还是会出现问题,我陷入纠结之中,再网上看了很多别人的问题和解决方案,发现说法基本差不多。后来看到一篇博文说用Binder传递过多的数据到Fragment里面也会出现,我看了我的代码,果然传了数据,我把数据打印出来,非常多,我把数据换成静态变量传值,果然问题解决了。
我的Android 7.0 版本,当Activity_a传大量数据到下面的Fragment,跳转到这个页面,并且已经数据已经传递时,app还可以正常运行,当这个页面跳转到另外一个页面Activity_b,Activity_a被覆盖时候,这个就会在Activity_b页面闪退,很容易让人以为是Activity_B里面的问题,而且打印的logcat很难定位到代码异常的位置。
logcat:
Caused by:
| |
5
android.os.TransactionTooLargeException:data parcel size 524968 bytes
| |
6
android.os.BinderProxy.transactNative(Native Method)
| |
7
android.os.BinderProxy.transact(Binder.java:751)
| |
8
android.app.IActivityManager$Stub$Proxy.activityStopped(IActivityManager.java:4636)
| |
9
android.app.ActivityThread$StopInfo.run(ActivityThread.java:4580)
| |
10
android.os.Handler.handleCallback(Handler.java:808)
| |
11
android.os.Handler.dispatchMessage(Handler.java:101)
| |
12
android.os.Looper.loop(Looper.java:166)
| |
13
android.app.ActivityThread.main(ActivityThread.java:7406)
| |
14
java.lang.reflect.Method.invoke(Native Method)
| |
15
com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
| |
16
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:926)
|