summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2018-03-04 17:47:14 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-03-04 17:47:14 +0000
commit48553062fa8147d2c943b8efff07ce1e87fb8a0e (patch)
tree114bbe84fe11b0188272764519b73e4527991523
parent005e2bb74de07c42acdc95a840c8fac7ed14ed2d (diff)
parent6ee51bb6d6ed587b0dcaf136ba299bcf075b4a13 (diff)
Merge "Fix crash with AppComponentFactory"
-rw-r--r--core/java/android/app/LoadedApk.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java
index ea5932cd4ae4..fc7d9a553e31 100644
--- a/core/java/android/app/LoadedApk.java
+++ b/core/java/android/app/LoadedApk.java
@@ -219,7 +219,7 @@ public final class LoadedApk {
}
private AppComponentFactory createAppFactory(ApplicationInfo appInfo, ClassLoader cl) {
- if (appInfo.appComponentFactory != null) {
+ if (appInfo.appComponentFactory != null && cl != null) {
try {
return (AppComponentFactory) cl.loadClass(appInfo.appComponentFactory)
.newInstance();
@@ -613,6 +613,7 @@ public final class LoadedApk {
} else {
mClassLoader = ClassLoader.getSystemClassLoader();
}
+ mAppComponentFactory = createAppFactory(mApplicationInfo, mClassLoader);
return;
}
@@ -687,6 +688,7 @@ public final class LoadedApk {
librarySearchPath, libraryPermittedPath, mBaseClassLoader,
null /* classLoaderName */);
StrictMode.setThreadPolicy(oldPolicy);
+ mAppComponentFactory = createAppFactory(mApplicationInfo, mClassLoader);
}
return;
@@ -714,6 +716,7 @@ public final class LoadedApk {
mApplicationInfo.targetSdkVersion, isBundledApp, librarySearchPath,
libraryPermittedPath, mBaseClassLoader,
mApplicationInfo.classLoaderName);
+ mAppComponentFactory = createAppFactory(mApplicationInfo, mClassLoader);
StrictMode.setThreadPolicy(oldPolicy);
// Setup the class loader paths for profiling.