簡體   English   中英

帶有AutofillManager的TransactionTooLargeException

[英]TransactionTooLargeException with AutofillManager

我剛剛從用戶那里得到了一個奇怪的堆棧跟蹤:

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=42, result=-1, data=Intent { dat=content://com.android.providers.media.documents/document/image:87 flg=0x43 }} to activity {org.walleth/org.walleth.activities.ImportActivity}: java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 3483676 bytes
at android.app.ActivityThread.deliverResults(ActivityThread.java:4436)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4479)
at android.app.ActivityThread.-wrap19(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1672)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6759)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)
Caused by: java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 3483676 bytes
at android.view.autofill.AutofillManager.updateSessionLocked(AutofillManager.java:904)
at android.view.autofill.AutofillManager.notifyValueChanged(AutofillManager.java:649)
at android.widget.TextView.notifyAutoFillManagerAfterTextChangedIfNeeded(TextView.java:9657)
at android.widget.TextView.sendAfterTextChanged(TextView.java:9641)
at android.widget.TextView.setText(TextView.java:5651)
at android.widget.TextView.setText(TextView.java:5498)
at android.widget.EditText.setText(EditText.java:113)
at android.widget.TextView.setText(TextView.java:5435)
at org.walleth.activities.ImportActivity.onActivityResult(ImportActivity.kt:192)
at android.app.Activity.dispatchActivityResult(Activity.java:7240)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4432)
... 9 more
Caused by: android.os.TransactionTooLargeException: data parcel size 3483676 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:766)
at android.view.autofill.IAutoFillManager$Stub$Proxy.updateSession(IAutoFillManager.java:468)
at android.view.autofill.AutofillManager.updateSessionLocked(AutofillManager.java:899)

還有其他人遇到此錯誤,也許找到了一個好的解決方法? 我目前唯一的想法是為此文本視圖禁用自動填充。

這些可能是您可能會遇到此問題的區域。

  1. 同時反序列化通過意圖發送的海量數據。
  2. 從服務接收位圖文件
  3. 從服務器響應接收到大量字節,您試圖映射到模型類。

可能的解決方案:

  1. 小塊發送數據。
  2. 在通過服務或意圖進行傳輸之前,請嘗試壓縮數據,然后將其解壓縮回原始類型。

不知道這是否可以解決您的問題,但是據我了解,這可能是可行的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM