简体   繁体   English

java.lang.RuntimeException:android.os.TransactionTooLargeException:在片段之间导航时数据包大小558780字节

[英]java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 558780 bytes when navigating between fragment

I am using Bundle to transfer data between activities and fragments. 我正在使用Bundle在活动和片段之间传输数据。 When I navigate from one fragment to new fragment, Without transferring data or using Bundle to get the data, Application is crashing with below error. 当我从一个片段导航到新片段时,如果不传输数据或使用Bundle获取数据,应用程序将崩溃,并出现以下错误。

> > 10-09 11:36:09.100 467-467/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 558780) 10-09 11:36:09.101 467-467/?
> D/AndroidRuntime: Shutting down VM 10-09 11:36:09.101 467-467/?
> E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.xxxx.xxxxmobileapp.debug, PID: 467 java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 558780 bytes at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4156) 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:6682) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) Caused by: android.os.TransactionTooLargeException: data parcel size 558780 bytes at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(Binder.java:628) at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:4149) at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4148) at android.os.Handler.handl 进程:com.xxxx.xxxxmobileapp.debug,PID:467 java.lang.RuntimeException:android.os.TransactionTooLargeException:数据包大小558780字节(位于android.app.ActivityThread $ StopInfo.run(ActivityThread.java:4156)在android。 os.Handler.handleCallback(Handler.java:751)android.os.Handler.dispatchMessage(Handler.java:95)android.os.Looper.loop(Looper.java:154)android.app.ActivityThread.main (ActivityThread.java:6682)在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1520)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os .ZygoteInit.main(ZygoteInit.java:1410)原因:android.os.TransactionTooLargeException:数据包大小558780字节(位于android.os.BinderProxy.transactNative(本机方法),位于android.os.BinderProxy.transact(Binder.java :) 628)在android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:4149)在android.app.ActivityThread $ StopInfo.run(ActivityThread.java:4148)在android.os.Handler.handl eCallback(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:6682) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) android.os.Handler.dispatchMessage(Handler.java:95)的eCallback(Handler.java:751)android.app.ActivityThread.main(ActivityThread.java)的android.os.Looper.loop(Looper.java:154)的eCallback(Handler.java:751) :6682),位于com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1520)的java.lang.reflect.Method.invoke(本机方法),位于com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1410)

Can we use the bridge or any third party tool to address the issue? 我们可以使用网桥或任何第三方工具来解决此问题吗? How to address this issue? 如何解决这个问题?

You must be passing a long string with Bundle like this and you have to clear the Bundle where you are receiving data. 您必须像这样通过Bundle传递一个长字符串,并且必须清除接收数据的Bundle You can use whatever way thinks good. 您可以使用任何认为好的方法。

1.Method: 1.方法:

Bundle bundle = new Bundle();
bundle.putString("This is just for testing purpose", "Developer program");

To clear bundle object on Fragment 清除Fragment捆绑对象

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) 
{
    String recStr= bundle.get("This is just for testing purpose");       
    bundle.clear();   
}

2.Method 2.方法

@Override
protected void onSaveInstanceState(Bundle oldInstanceState) 
{
    super.onSaveInstanceState(oldInstanceState);
    oldInstanceState.clear();
}

It'll help you. 会帮你的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 由于java.lang.RuntimeException而在图库中崩溃:android.os.TransactionTooLargeException:数据包大小539544字节 - Crash in gallery due to java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 539544 bytes android.os.TransactionTooLargeException:数据包大小565156字节 - android.os.TransactionTooLargeException: data parcel size 565156 bytes android.os.TransactionTooLargeException:数据包大小NOUGAT错误 - android.os.TransactionTooLargeException: data parcel size NOUGAT ERROR 启动活动 android.os.TransactionTooLargeException 时出现异常:数据包大小 - Exception when starting activity android.os.TransactionTooLargeException: data parcel size 使用 Retrofit 调用获取 Web 服务请求时。 “android.os.TransactionTooLargeException:数据包大小 1575704 字节” - while calling get web service request Using Retrofit. “android.os.TransactionTooLargeException: data parcel size 1575704 bytes” java.lang.RuntimeException:包裹 android.os.Parcel:解组未知类型代码 - java.lang.RuntimeException: Parcel android.os.Parcel: Unmarshalling unknown type code 执行queryIntentActivities时android.os.TransactionTooLargeException - android.os.TransactionTooLargeException when executing queryIntentActivities 未知错误:java.lang.RuntimeException android.os.Parcel.writeValue - Unknown Error : java.lang.RuntimeException android.os.Parcel.writeValue Android | java.lang.RuntimeException:包裹android.os.Parcel@1219dd0f:在偏移量660处解组未知类型代码6881396 - Android | java.lang.RuntimeException: Parcel android.os.Parcel@1219dd0f: Unmarshalling unknown type code 6881396 at offset 660 Xamarin Android-无法启动活动ComponentInfo {[activityName]}:java.lang.RuntimeException:Parcel android.os.Parcel @ [address] - Xamarin Android - Unable to start activity ComponentInfo{[activityName]}: java.lang.RuntimeException: Parcel android.os.Parcel@[address]
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM