您的位置:首页 > 移动开发 > Android开发

Android JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 224)

2017-03-22 16:43 489 查看
项目开发中遇到了报错

JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 224)

E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 224)
I/Unity: AndroidJavaException: java.lang.RuntimeException: Package manager has died
java.lang.RuntimeException: Package manager has died
at android.app.ApplicationPackageManager.queryIntentActivitiesAsUser(ApplicationPackageManager.java:767)
at android.app.ApplicationPackageManager.queryIntentActivities(ApplicationPackageManager.java:749)
at com.android.js.controller.BaseAppController.getOculusApps(BaseAppController.java:56)
at com.android.js.controller.BaseAppController.getAllVRApps(BaseAppController.java:130)
at com.android.js.controller.VRAppController.initVRAppList(VRAppController.java:63)
at com.android.js.controller.VRAppController.getVRAppList(VRAppController.java:195)
at com.android.js.VivoClient.getVRAppList(VivoClient.java:571)
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.a(Unknown Source)
at com.unity3d.player.UnityPlayer$b.run(Unknown Source)
Caused by: android.os.DeadObjectException: Transaction fail

这个错误的产生是因为binder传递的数据大小超过了40kb导致,错误提示是224kb
public static List<ResolveInfo> getOculusApps(){

Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
List<ResolveInfo> apps = getPackageManager().queryIntentActivities(
mainIntent, 0);回到代码我们发现只有一个检索调教Intent.ACTION_MAIN,增加检索条件可以减少binder传递数据的大小,修改代码
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER;
List<ResolveInfo> apps = getPackageManager().queryIntentActivities(
mainIntent, 0);


问题解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐