gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:45:49 28 4
gpt4 key购买 nike

我正在使用 Bundle在 Activity 和 fragment 之间传输数据。当我从一个 fragment 导航到新 fragment 时,不传输数据或使用 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.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)



我们可以使用桥接器或任何第三方工具来解决问题吗?如何解决这个问题?

最佳答案

您必须使用 Bundle 传递一个长字符串像这样,你必须清除 Bundle您在哪里接收数据。你可以使用任何认为好的方式。

1.方法:

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

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

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

它会帮助你。

关于android - java.lang.RuntimeException : android. os.TransactionTooLargeException:在 fragment 之间导航时数据包大小 558780 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52716060/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com