diff --git a/core/java/android/app/ResourcesManager.java b/core/java/android/app/ResourcesManager.java index 3c1311537848e..1691d8e28f5e6 100644 --- a/core/java/android/app/ResourcesManager.java +++ b/core/java/android/app/ResourcesManager.java @@ -178,8 +178,13 @@ public class ResourcesManager { //} AssetManager assets = new AssetManager(); - if (assets.addAssetPath(resDir) == 0) { - return null; + // resDir can be null if the 'android' package is creating a new Resources object. + // This is fine, since each AssetManager automatically loads the 'android' package + // already. + if (resDir != null) { + if (assets.addAssetPath(resDir) == 0) { + return null; + } } if (splitResDirs != null) { diff --git a/core/java/android/content/res/ResourcesKey.java b/core/java/android/content/res/ResourcesKey.java index 53e0f2c00e0d9..e0f1b3a3f079b 100644 --- a/core/java/android/content/res/ResourcesKey.java +++ b/core/java/android/content/res/ResourcesKey.java @@ -62,8 +62,12 @@ public final class ResourcesKey { return false; } ResourcesKey peer = (ResourcesKey) obj; - if (!mResDir.equals(peer.mResDir)) { - return false; + if (mResDir != peer.mResDir) { + if (mResDir == null || peer.mResDir == null) { + return false; + } else if (!mResDir.equals(peer.mResDir)) { + return false; + } } if (mDisplayId != peer.mDisplayId) { return false;