0

비디오 플레이어에 앱을 추가해야하는 경우 데이터 소포 크기 오류가 발생합니다. 목록에서 항목 하나를 선택하면 새 활동이 열립니다.이 활동에는 값 문자열이있는 인 텐트가 수신되고 나중에 조각이 초기화됩니다. 비디오 플레이어가 있습니다. 비디오를 시작할 때 데이터 소포 크기 오류가 있기 때문에 응용 프로그램이 닫힙니다. 이유는 시작 표시가이 오류를 알지 못합니다.초기화 비디오 플레이어

> > 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) 

답변

0

startActivity() 의도로 너무 많은 데이터를 전달하는 경우가 거의 확실합니다. 고정 바인더 버퍼 크기로 인해 1MiB를 전달하는 것으로 제한됩니다. 또한 버퍼가 프로세스에서 모든 바인더 트랜잭션에 사용되므로 버퍼에 먹을 다른 IPC를 수행하는 경우를 고려하십시오.

큰 덩어리의 데이터를 전달해서는 안됩니다. 이러한 것을 "전달"해야하는 경우 해당 참조 (예 : 파일 경로 또는 검색 할 수있는 콘텐츠 URI)를 전달합니다.

+0

오직 하나의 값만이 의도 된 문자열입니다. 활동을 시작한 후에 더 많은 값을 보내지 마십시오. 재료 설계로 전환을 사용하지 마십시오. –

+0

활동에서 수행중인 작업이 크기 689244의 소포를 전달하고 있습니다. 바로 거기에 있습니다. 로그에 당신이 어떤 코드도 게시하지 않았기 때문에 그것이 무엇인지 말하기가 어렵습니다. –

+0

죄송합니다. 코드의 글자가 글자 수 한도 내에서 허용되지 않기 때문에 글에 코드를 공유하지 않습니다. –