代码之家  ›  专栏  ›  技术社区  ›  prom85

PackageManager死亡-DeadObjectException-小包裹事务失败

  •  1
  • prom85  · 技术社区  · 6 年前

    public static boolean isAppInstalled(String packageName) {
        PackageManager pm = MainApp.get().getPackageManager();
        try {
            pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
            return false;
        }
    }
    

    有时会在线路上撞车 getPackageInfo 具有以下stacktrace:

    java.lang.RuntimeException: Package manager has died
        at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:151)
        ... code in my app => getPackageInfo line above ...
    Caused by: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died
        at android.os.BinderProxy.transactNative(Native Method)
        at android.os.BinderProxy.transact(Binder.java:505)
        at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.java:2151)
        at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:145)
        ...
    

    你知道为什么会这样吗?我以为这样的事情只有在同时安装/卸载应用程序时才会发生,但我有一个用户可以重复这个过程,并且总是得到这个异常。

    0 回复  |  直到 6 年前
        1
  •  1
  •   Andronicus    5 年前

    在那之后,请重新使用你的手机;

    1. 清洁项目
    2. 编译项目