Jud*_*995 6 android package-managers
例外
java.lang.RuntimeException: Package manager has died
at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:139)
at com.crypt.lord.e.a.f(AppHelper.java:375)
at com.crypt.lord.a.f.a(InstallListData.java:56)
at com.crypt.lord.a.f.a(InstallListData.java:34)
at com.crypt.lord.a.f.c(InstallListData.java:90)
at com.crypt.lord.impl.CryptLordServiceImpl$5.run(CryptLordServiceImpl.java:429)
at java.lang.Thread.run(Thread.java:818)
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:503)
at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.ja
va:2187)
at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:134)
... 6 more
Run Code Online (Sandbox Code Playgroud)
我的代码
public int isSystemApp(String packageName) {
int systemApp = 1;
int notSystemApp = 2;
int unKnown = 3;
if (TextUtils.isEmpty(packageName)) {
return unKnown;
}
if (mContext == null) {
return unKnown;
}
try {
PackageManager packageManager = mContext.getPackageManager();
if (packageManager != null && packageName != null) {
PackageInfo packageInfo = packageManager.getPackageInfo(packageName, 0);
if (packageInfo != null && packageInfo.applicationInfo != null && ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0)) {
return systemApp;
} else {
return notSystemApp;
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return unKnown;
}
Run Code Online (Sandbox Code Playgroud)
我发现了一些其他问题“包管理器已死”,由 TransactionTooLargeException 引起,答案是 Binder 事务的 1MB 限制。如何解决这个问题呢?
| 归档时间: |
|
| 查看次数: |
1427 次 |
| 最近记录: |