初始视频播放器时数据包大小错误

时间:2016-11-24 00:19:52

标签: android android-fragments material-design android-video-player

我必须使用视频播放器app,当我在列表中选择一个项目时,我打开一个新活动,在此活动中接收一个带有值字符串的意图,然后初始化一个片段,有视频播放器,当开始视频时,该应用程序已关闭,因为有数据包大小错误,我不知道原因启动显示此错误。

> > FATAL EXCEPTION: main
>                                                                  Process: com.msi.eluniversal, PID: 969
>                                                                  java.lang.RuntimeException: android.os.TransactionTooLargeException:
> data parcel size 689244 bytes
>                                                                      at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3752)
>                                                                      at android.os.Handler.handleCallback(Handler.java:751)
>                                                                      at android.os.Handler.dispatchMessage(Handler.java:95)
>                                                                      at android.os.Looper.loop(Looper.java:154)
>                                                                      at android.app.ActivityThread.main(ActivityThread.java:6077)
>                                                                      at java.lang.reflect.Method.invoke(Native Method)
>                                                                      at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
>                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
>                                                                   Caused by: android.os.TransactionTooLargeException: data parcel size
> 689244 bytes
>                                                                      at android.os.BinderProxy.transactNative(Native Method)
>                                                                      at android.os.BinderProxy.transact(Binder.java:615)
>                                                                      at
> android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3606)
>                                                                      at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3744)
>                                                                      at android.os.Handler.handleCallback(Handler.java:751) 
>                                                                      at android.os.Handler.dispatchMessage(Handler.java:95) 
>                                                                      at android.os.Looper.loop(Looper.java:154) 
>                                                                      at android.app.ActivityThread.main(ActivityThread.java:6077) 
>                                                                      at java.lang.reflect.Method.invoke(Native Method) 
>                                                                      at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
>                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

1 个答案:

答案 0 :(得分:0)

您几乎肯定会在startActivity()意图中传递过多数据。由于固定的活页夹缓冲区大小,您仅限于传递1MiB。还要考虑缓冲区适用于您的进程中的所有活页夹事务,因此如果您正在执行其他一些将进入缓冲区的IPC。

你真的不应该传递大块数据。如果您需要“传递”此类内容,请传递对它们的引用(例如,文件路径或可以检索它们的内容URI)。