代码之家  ›  专栏  ›  技术社区  ›  Rakesh

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

  •  -1
  • Rakesh  · 技术社区  · 6 年前

    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
    

    进程:com.xxxx.xxxxmobileapp.debug,PID:467 数据包大小558780字节 在android.app.ActivityThread$StopInfo.run(ActivityThread。java:4156) 在android.os.Handler.handleCallback(Handler。java:751) 在android.os.Looper.loop(Looper。java:154) 在android.app.ActivityThread.main(ActivityThread。java:6682) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit。java:1520) 在com.android.internal.os.ZygoteInit.main(ZygoteInit。java:1410) 在android.os.BinderProxy.transactinative(本机方法) 在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.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) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit.main(ZygoteInit。java:1410)

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

    1 回复  |  直到 6 年前
        1
  •  13
  •   ॐ Rakesh Kumar    6 年前

    你一定是在传递一根长长的绳子 Bundle 捆绑 接收数据的位置。你可以用任何你认为好的方法。

    1.方法:

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

    Fragment

    @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();
    }
    

    它会帮你的。