gpt4 book ai didi

android.os.TransactionTooLargeException 随机抛出

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:46:56 27 4
gpt4 key购买 nike

我从我的一个实时应用程序中看到了很多错误报告,原因是这个异常:

java.lang.RuntimeException: Adding window failed
at android.view.ViewRootImpl.setView(ViewRootImpl.java:513)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2852)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2250)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(NativeStart.java)

Caused by: android.os.TransactionTooLargeException
at android.os.BinderProxy.transact(Binder.java)
at android.view.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:683)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:502)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2852)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2250)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(NativeStart.java)

从我读到的here ,我认为原因可能是我添加到 Intent extras 的 Parcelable 太大了。我目前正在将一个对象从一个 Activity 传递到另一个 Activity ,在该对象 writeToParcel 方法中,我正在保存一个 JSON 字符串,其长度范围为 1000 - 1500 个字符。这可能是原因吗?

在测试应用程序时,我有时会注意到 UI 滞后,就好像它内存不足一样,卡住然后强制关闭。

使用静态变量将对象从一个 Activity 传递到另一个 Activity 会更好吗?还是这可能完全由其他原因引起?

谢谢

最佳答案

是的,这很可能是由于 Parcelable 太大造成的,确切地说,对象图太大而无法作为 Parcelable 发送。以我的经验,如果你正在传输大图,你最好使用 java 序列化,这与你在 SO 和一般情况下从其他地方获得的建议几乎相反。公平地说,它比通过 Parceler lib 使用 Parcelable 更好,我从未使用过纯 Parcelable。有关详细信息,请参阅 my blog post关于这个话题。

关于android.os.TransactionTooLargeException 随机抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21789003/

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