Avoid NPE when installing app update.
PMS sends REMOVED followed quickly by ADDED. Ignore when missing
package, since it may be coming back shortly. Eventually we should
change this to watch EXTRA_REPLACING.
Bug: 7269896
Change-Id: I3b518f4faee34019c5c808824d5e46261f6d206a
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index c5b3f8c..55f18d2 100644
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -568,14 +568,19 @@
}
}
mAppEntry = mState.getEntry(packageName);
- // Get application info again to refresh changed properties of application
- try {
- mPackageInfo = mPm.getPackageInfo(mAppEntry.info.packageName,
- PackageManager.GET_DISABLED_COMPONENTS |
- PackageManager.GET_UNINSTALLED_PACKAGES |
- PackageManager.GET_SIGNATURES);
- } catch (NameNotFoundException e) {
- Log.e(TAG, "Exception when retrieving package:" + mAppEntry.info.packageName, e);
+ if (mAppEntry != null) {
+ // Get application info again to refresh changed properties of application
+ try {
+ mPackageInfo = mPm.getPackageInfo(mAppEntry.info.packageName,
+ PackageManager.GET_DISABLED_COMPONENTS |
+ PackageManager.GET_UNINSTALLED_PACKAGES |
+ PackageManager.GET_SIGNATURES);
+ } catch (NameNotFoundException e) {
+ Log.e(TAG, "Exception when retrieving package:" + mAppEntry.info.packageName, e);
+ }
+ } else {
+ Log.w(TAG, "Missing AppEntry; maybe reinstalling?");
+ mPackageInfo = null;
}
return packageName;