diff options
| author | Narayan Kamath <narayan@google.com> | 2014-10-15 11:38:44 +0100 |
|---|---|---|
| committer | Narayan Kamath <narayan@google.com> | 2014-10-15 11:38:44 +0100 |
| commit | 8091edbffbacbf80eebe0ed646e6ec9f6aafe5be (patch) | |
| tree | d73669a586dd8222897b355e5af8ea012c2235cc | |
| parent | 5873c3e862b83fb0c64b52b86bdd8f26ff8ffb5f (diff) | |
Set threads' contextClassLoader during LoadedApk.makeApplication.
We used to set this from LoadedApk.getClassLoader. This had
the unfortunate side effect of clobbering the threads default
classloader when Context.createPackageContext().getClassLoader()
was called. This happens, for example, to every app that uses
a updatable webview.
bug: 17986934
Change-Id: If2b5938a19f836ea5fe60c94ea53a7125c2098c0
| -rw-r--r-- | core/java/android/app/LoadedApk.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java index d143b8634531..aa98e973855c 100644 --- a/core/java/android/app/LoadedApk.java +++ b/core/java/android/app/LoadedApk.java @@ -360,7 +360,6 @@ public final class LoadedApk { mClassLoader = ApplicationLoaders.getDefault().getClassLoader(zip, lib, mBaseClassLoader); - initializeJavaContextClassLoader(); StrictMode.setThreadPolicy(oldPolicy); } else { @@ -552,6 +551,9 @@ public final class LoadedApk { try { java.lang.ClassLoader cl = getClassLoader(); + if (!mPackageName.equals("android")) { + initializeJavaContextClassLoader(); + } ContextImpl appContext = ContextImpl.createAppContext(mActivityThread, this); app = mActivityThread.mInstrumentation.newApplication( cl, appClass, appContext); |
