在我的应用程序中,我使用LruCache从缓存中的URL保存位图。但是当我尝试将位图共享给其他应用程序时,我无法发送位图。谁能告诉我这是什么问题?
我的错误日志是
Caused by: android.os.TransactionTooLargeException: data parcel size 11700720 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:615)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3114)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1520)
at android.app.Activity.startActivityForResult(Activity.java:4234)
at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:77)
at android.app.Activity.startActivityForResult(Activity.java:4192)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859)
at android.app.Activity.startActivity(Activity.java:4531)
at android.app.Activity.startActivity(Activity.java:4499)
at me.entri.entrime.utils.Utils.showShareIntent(Utils.java:113)
at me.entri.entrime.fragments.ResultsFragment$4.onClick(ResultsFragment.java:237)
at android.view.View.performClick(View.java:5637)
答案 0 :(得分:0)
TransactionTooLargeException :
Binder事务缓冲区的固定大小有限,目前为1Mb, 由进程中的所有正在进行的事务共享。 因此,当存在许多异常时,可以抛出此异常 即使在大多数个别交易中,交易仍在进行中 中等大小。
您应该将图像的URI传递给intent而不是传递位图本身。 如果您不想使用外部存储,那么您可以参考建议: https://stackoverflow.com/a/33182408/4644823