HanteIsHante / NewProjectSum

拼盘
2 stars 1 forks source link

TransactionTooLargeException beginBroadcast() called while already in a broadcast #106

Open HanteIsHante opened 7 years ago

HanteIsHante commented 7 years ago
Fatal Exception: java.lang.RuntimeException: Package manager has died
       at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:116)
       at cc.netpas.android_firewall.paydialog.PayDetail.readDefaultStyle(PayDetail.java:319)
       at cc.netpas.android_firewall.paydialog.PayDetail.initView(PayDetail.java:307)
       at cc.netpas.android_firewall.paydialog.PayDetail.onCreateView(PayDetail.java:193)
       at android.app.Fragment.performCreateView(Fragment.java:2053)
       at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:894)
       at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
       at android.app.BackStackRecord.run(BackStackRecord.java:834)
       at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1462)
       at android.app.FragmentManagerImpl$1.run(FragmentManager.java:447)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:159)
       at android.app.ActivityThread.main(ActivityThread.java:5541)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:975)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)
Caused by android.os.TransactionTooLargeException
       at android.os.BinderProxy.transactNative(Binder.java)
       at android.os.BinderProxy.transact(Binder.java:496)
       at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.java:1816)
       at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:111)
       at cc.netpas.android_firewall.paydialog.PayDetail.readDefaultStyle(PayDetail.java:319)
       at cc.netpas.android_firewall.paydialog.PayDetail.initView(PayDetail.java:307)
       at cc.netpas.android_firewall.paydialog.PayDetail.onCreateView(PayDetail.java:193)
       at android.app.Fragment.performCreateView(Fragment.java:2053)
       at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:894)
       at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
       at android.app.BackStackRecord.run(BackStackRecord.java:834)
       at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1462)
       at android.app.FragmentManagerImpl$1.run(FragmentManager.java:447)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:159)
       at android.app.ActivityThread.main(ActivityThread.java:5541)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:975)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)
 synchronized(PayDetail.class){
                        PackageManager pM = getActivity().getPackageManager();
                        pM.getPackageInfo("com.tencent.mm", PackageManager.GET_ACTIVITIES);//存在微信
                    }
HanteIsHante commented 7 years ago

参考

HanteIsHante commented 7 years ago

Binder的使用超出了一个进程的限制(1M)就会抛出TransactionTooLargeException这个异常 如果是其他原因造成Binder crash的话就会抛出RuntimeException。