将位图分享给其他应用程序

时间:2017-02-27 12:31:00

标签: android

在我的应用程序中,我使用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) 

1 个答案:

答案 0 :(得分:0)

TransactionTooLargeException :

  

Binder事务缓冲区的固定大小有限,目前为1Mb,   由进程中的所有正在进行的事务共享。   因此,当存在许多异常时,可以抛出此异常   即使在大多数个别交易中,交易仍在进行中   中等大小。

您应该将图像的URI传递给intent而不是传递位图本身。 如果您不想使用外部存储,那么您可以参考建议: https://stackoverflow.com/a/33182408/4644823