1. 程式人生 > >Android JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 224)

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

專案開發中遇到了報錯

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

問題解決

相關推薦

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

專案開發中遇到了報錯 JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 224) E/JavaBinder: !!! FAILE

Android開發異常javabinder !!! FAILED BINDER TRANSACTION !!!

android開發過程中,我遇到了這樣的一個不明確的異常提示!!! FAILED BINDER TRANSACTION !!!,!!!失敗的粘合劑事務!!!後來我發現,出現這個問題的原因是我在兩個Activity之間使用Intent傳遞過大的Bitmap才出現的, 於是

[Android開發-異常]javabinder !!! FAILED BINDER TRANSACTION !!!

android開發過程中,我遇到了這樣的一個不明確的異常提示!!! FAILED BINDER TRANSACTION !!!,什麼通訊失敗?後來我發現,出現這個問題的原因是我在兩個Activity之

JavaBinder: !!! FAILED BINDER TRANSACTION !!! intent傳遞大資料異常解決

    在使用intent傳遞集合資料的時候,報了JavaBinder: !!! FAILED BINDER TRANSACTION !!! 錯誤,翻譯成中文就是“繫結器事務失敗”,實際的原因就是使用intent的時候攜帶的資料太大導致傳遞失敗。    

android異常!!! FAILED BINDER TRANSACTION !!!

如下程式碼: public class BActivity extends Activity { Button btn_noSave = null; @Override public voi

E/JavaBinderFAILED BINDER TRANSACTION錯誤解決+RadioGroup呼叫check方法的時候,onCheckedChanged被呼叫多次的問題解決

1.錯誤:E/JavaBinder﹕ !!! FAILED BINDER TRANSACTION !!! 解決:Intent傳遞資料問題,因為Intent傳遞資料有限制,據說最大為1M左右,今天試著進

zxing掃描後出現 FAILED BINDER TRANSACTION

今天在進行 zxing 二維碼掃描時,出現  FAILED BINDER TRANSACTION,心裡那叫一個不爽。 細看了下程式碼,因為之前寫的掃描的程式碼,掃描框有些小,於是修改了zxing包下 camera 包下的 CameraManager 類的 getFrami

關於Activity間Intent傳值“FAILED BINDER TRANSACTION”問題

      今天通過Intent在Activity間傳遞bitmap資料 Intent intent=new Intent(); intent.setClass(A.this,B.class); intent.putExtra("bitmap", bit);

android.os.TransactionTooLargeException: data parcel size 962920 bytes

完整異常資訊是這樣的: Exception thrown launching activities in ProcessRecord{202c714 11807:com.lib.jiabao_w/u0a240} android.os.TransactionTooLargeExc

Android呼叫系統裁減圖片,出現android.os.TransactionTooLargeException: data parcel size 642356 bytes

1、Android拍照和相簿+系統裁剪功能返回圖片http://blog.csdn.net/why110999784/article/details/52460403 2、裁減圖片時傳遞的return-data設定為true,在onActivityResult的Inten

android.os.TransactionTooLargeException: data parcel size xxxx bytes

針對這個問題也百度看了一下, 發現其實很多人都遇到過這個問題 1. 介面跳轉   intent 中的資料內容較多   android.os.TransactionTooLargeException     2. Android呼叫系統裁減圖片,出現android.os.Tr

Android 異常: failed to connect to localhost/127.0.0.1

col host 本地 led style 本地計算機 str 異常 需要 連接本地web服務器,在模擬器不能連接到127.0.0.1。 Android把127.0.0.1當作模擬器本機,而把計算機本地IP設為10.0.2.2,需要把需連接本地計算機web服務地址改為:ht

Android Error:Failed to complete Gradle execution. Cause: The version of Gradle you are using (3.3)

Android 打包錯誤: Error:Failed to complete Gradle execution. Cause: The version of Gradle you are using (3.3) does not support the forTasks() me

dmesg報錯:pci 0000:00:1c.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]

1)00:1c.0, 00:1c.1, 00:1c.2, 00:1c.3 裝置如下,為PCI橋裝置 2)以第一個PCI橋00:1c.0為例,從shell介面可以看到BIOS給其分配的memory地址為90600000~908fffff,進入系統後,dmesg看到: 系統要給00:1c

[Android] bindService的binder通訊過程分析

關於bindService方法 public class ContextWrapper extendsContext {    Context mBase;      public ContextWrapper(Conte

Android:解決Failed to load D:\Android-Studio\sdk\build-tools\xx.xx.xx\lib\dx.jar

Eclipse遇到如下錯誤: [2018-11-04 18:11:46 - Dex Loader] Failed to load G:\Android Tools\android-sdk-w

[Android] 徹底瞭解Binder機制原理和底層實現

1.Binder通訊機制介紹 這篇文章會先對比Binder機制與Linux的通訊機制的差別,瞭解為什麼Android會另起爐灶,採用Binder。接著,會根據 Binder的機制,去理解什麼是Service Manager,在C/S模型中扮演什麼角色。最後,會從一次完整的通訊活動中,去理解Binder通訊

Android createWindowSurface failed EGL_BAD_ALLOC 引起Crash的解決方案

createWindowSurface failed EGL_BAD_ALLOC 先看下Log: W/Adreno-EGL﹕ <eglTimestampCreate:5493>: EGL_BAD_ALLOC E/libEGL﹕ eglMakeCurrent:7

android build failed

問題1: Warning:Conflict with dependency 'com.google.code.findbugs:jsr305'. Resolved versions for ap

關於TransactionTooLargeException: data parcel size 526312 bytes的解決

        我遇到這個異常在Android 7.0以上會出現,而在Android 7.0以下則沒有出現問題,網上都是說頁面跳轉intent資料過大的原因,這確實是一個原因,剛開始我也是按照這個方向去找問題的,我確實在跳轉的時候帶了資料 ,我以為問題就此引刃而解,但是,我不