问题标签 [transactiontoolargeexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 在 RemoteViews 中调用 updateAppWidget 时出现 TransactionTooLargeException(仅在 android 7.0 和 6.0 上)
我在控制台中有很多 TransactionTooLargeException 崩溃报告(有趣的是 - 几乎完全来自较旧的 android 版本 7.0 和 6.0 - 几乎没有来自较新的 android)。
它总是发生在我的 JobIntentService 的这行代码上:
为什么会发生,如何避免?有人有经验吗?崩溃日志在这里:
android - 反应原生 android TransactionTooLargeException
我们最近发布了一个 ReactNative 应用程序,但我们收到了很多关于 android 的崩溃报告java.lang.RuntimeExceptionBinder.java
android.os.TransactionTooLargeException: data parcel size X(between 400k to 750k) bytes
。
在我们的应用程序中,我们有一个无限滚动列表(Flatlist),它可以变得非常大(2k + 记录),这被怀疑是导致此问题的原因。我已经看到https://github.com/facebook/react-native/issues/19458打开了,但没有解决方案。还使用建议的工具 (TooLargeTool) 指出,在进入后台时会保存 0 个字节。
有没有人经历过这个问题或对如何解决它有任何意见?
谢谢
android - Activity 保存的 android:support:fragments 越来越大并导致 TransactionTooLargeException
我有一个控制几个片段的活动。默认片段是HomepageFragment
. 当替换到不同的 Fragment 时,我总是确保堆栈保持平坦 - 这意味着只有HomepageFragment
堆栈中的停留和当前的 Fragment 位于其顶部。例如:
- 活动打开
HomepageFragment
- 需要替换为
FragmentA
- 一切都是好的原因HomepageFragment
是最后一个片段 - 现在堆栈是
HomepageFragment
->FragmentA
- 需要替换为
FragmentB
- 首先弹出堆栈上的最后一个片段 (fragmentA
),而不是替换为FragmentB
- 现在堆栈是
HomepageFragment
->FragmentB
在生产中,我看到很多TransactionTooLargeException
崩溃。
我曾经TooLargeTool
跟踪问题的出处,我发现当我在活动中的片段之间切换时,有一个android:support:fragments
键SaveInstanceState
变得越来越大(以指数方式),直到崩溃发生。
似乎即使从堆栈中弹出,有关原始事务的一些数据也会继续保存。
按照此处的建议将其删除会导致 Activity 在被操作系统杀死后无法正常恢复。
我的压平堆栈的方法有问题吗?有更好的方法吗?到底保存了哪些数据android:support:fragments
?
注意:我没有为这些片段设置任何参数。此外,他们在他们的 saveInstanceState 包中保存了非常小的数据。
谢谢!
java - android.os.TransactionTooLargeException: 数据包大小 NOUGAT ERROR
我正在使用 RETROFIT 进行 api 调用,我从服务器获得了几乎 30kb 大小的 JSON 响应。当 JSON 将响应解析为复杂对象时,它会抛出此错误。
如果我尝试将响应存储在 Object 类中,然后通过 LinkedHashMap 获取值,我就能够获取数据。但是,这将是一个乏味的过程。
谁能帮我弄清楚这里的问题是什么以及如何找到解决方案?
根据我的研究,这只发生在版本 >= Nougat 的 android 设备上。在此之下,它就像小菜一碟。
我也尝试过以下提到的一些解决方案: --> onSaveInstanceState.clear() - 但这不起作用。 你可以在这里找到帖子
android - 带有 FragmentStatePagerAdapter 的 TransactionTooLargeException
我使用默认为 1 的 ViewPager 和 FragmentStatePagerAdapter 编写了一个阅读器应用程序offscreenPageLimit
,其中我有
这里创建了一个index
大于 2000 的 ComicFragment,具有此类索引的漫画将被加载到片段中。setRetainInstance
默认为false
同样在片段中,我transMode
在 savedInstanceState 中保存了索引和布尔值,这样当用户来回滑动几页时,他们将拥有与原来相同的页面状态。它还将维护配置更改的状态。
问题是,随着从TooLargeTool中滑走的每个片段,
0.8 KB 不算大,但是在viewpager 的父fragment 和它的容器activity 中积累起来的。这意味着从索引 1 浏览到 1000 时,将有 800 KB 保存在父片段的状态。当我开始一个新活动时,它到达了 1MB TransactionTooLargeException 的红线。(实际上,即使捆绑包大约 500KB 也可能发生此异常)
更糟糕的是父片段中的状态包没有释放。我发现通过这样的实现,如果我从 1 浏览到 100 然后反向返回到 1,保存的状态可以应用于每个片段但不会释放,因为父片段中状态包的大小加倍为 160 KB 而不是 80 KB。
我几乎没有在包中放任何东西,也不敢添加任何更大的东西,比如可序列化的,因为本机android:view_state
可能足以引起问题。
我想知道应该如何改进实现,是否可以轻松修复,或者更重的东西,例如使用 Android 架构组件、ViewPager2 或其他依赖项。
更新:
我试过了
view.isSaveFromParentEnabled = false
在onViewCreated()
.savedInstanceState?.clear()
在结束时onViewCreated()
。android:saveEnabled="false"
到那些具有 id 的视图,但不需要保存。
在这三种方式中,只有第三种有效。
android:view_state
已完全消除,因为我没有任何需要保持状态的视图(EditText、ToggleButton)。
这个问题还没有完全解决,但我相信现在异常的机会已经降低了 8 倍,而不会影响功能。
android - 由android.os.TransactionTooLargeException引起:data parcel size 5971992 bytes 有什么工具可以调试这个错误
我正在开发生产应用程序。我在 Crashlytics 中收到异常。我不知道发生在哪里,因为它没有指向任何活动。只是我收到这样的错误。
是否有任何工具/库来检测此问题
我也检查了这个链接What to do on TransactionTooLargeException
我试过这个工具https://github.com/guardian/toolargetoo它对我没有帮助。你能分享你的想法吗
android - 带有大 msg.obj 的处理程序可以抛出 TransactionTooLargeException 吗?
我注意到 Google Console 中报告了很多异常:
我试图弄清楚是什么引发了那个异常,但我做不到。我在源代码中唯一可疑的部分是我正在加载一个非常大的 json 文件(7MB),data
使用 GSON 将其解析为模型(对象),并将其通过处理程序传递给我的活动:
. . .
当传递一个大尺寸的 msg.obj 参数时,这个处理程序可以抛出那个异常吗?
java - 为什么我会收到 TransactionTooLargeException?
我正在开发一个 Android 项目,但是当我需要从图库中拍照时,我被卡住了。确实,当我拍摄第一张照片时,一切都很顺利。但是,如果我拍摄第二张照片,则会引发异常“TransactionTooLargeException”并且我的应用程序崩溃了。
用于启动活动的代码:
得到结果的代码:
你有什么想法可以解决我的问题吗?
android - 有什么办法可以找到确切的 TransactionToolargExcetion 行,
我面临的事务太大异常有没有办法找到准确的行,就像正常的错误一样,会显示空指针异常。这个问题发生的时间更长
我检查了这个线程,我也得到了我所期待的
android - Android ViewPager2 库抛出 Transactiontoolarge 异常 onpause 事件
如果页面大小 = 50 并且我按下主页按钮,我会收到 TransactionTooLarge 异常。我检查了 FragmentStateAdapter,发现“saveState()”方法已完成。请帮助我如何解决这个问题。
在 ViewPager 中,我使用以下链接覆盖了它 - https://medium.com/@mdmasudparvez/android-os-transactiontoolargeexception-on-nougat-solved-3b6e30597345
但在 View pager2 库中没有办法。