summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/ApplicationLoaders.java31
1 files changed, 10 insertions, 21 deletions
diff --git a/core/java/android/app/ApplicationLoaders.java b/core/java/android/app/ApplicationLoaders.java
index 0fc097e2e706..d89e1864f36f 100644
--- a/core/java/android/app/ApplicationLoaders.java
+++ b/core/java/android/app/ApplicationLoaders.java
@@ -18,6 +18,7 @@ package android.app;
import android.os.Trace;
import android.util.ArrayMap;
+import com.android.internal.os.PathClassLoaderFactory;
import dalvik.system.PathClassLoader;
class ApplicationLoaders {
@@ -51,24 +52,19 @@ class ApplicationLoaders {
if (loader != null) {
return loader;
}
-
+
Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, zip);
- PathClassLoader pathClassloader =
- new PathClassLoader(zip, librarySearchPath, parent);
+ PathClassLoader pathClassloader = PathClassLoaderFactory.createClassLoader(
+ zip,
+ librarySearchPath,
+ libraryPermittedPath,
+ parent,
+ targetSdkVersion,
+ isBundled);
- String errorMessage = createClassloaderNamespace(pathClassloader,
- targetSdkVersion,
- librarySearchPath,
- libraryPermittedPath,
- isBundled);
Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
- if (errorMessage != null) {
- throw new UnsatisfiedLinkError("Unable to create namespace for the classloader " +
- pathClassloader + ": " + errorMessage);
- }
-
mLoaders.put(zip, pathClassloader);
return pathClassloader;
}
@@ -80,12 +76,6 @@ class ApplicationLoaders {
}
}
- private static native String createClassloaderNamespace(ClassLoader classLoader,
- int targetSdkVersion,
- String librarySearchPath,
- String libraryPermittedPath,
- boolean isShared);
-
/**
* Adds a new path the classpath of the given loader.
* @throws IllegalStateException if the provided class loader is not a {@link PathClassLoader}.
@@ -100,6 +90,5 @@ class ApplicationLoaders {
private final ArrayMap<String, ClassLoader> mLoaders = new ArrayMap<String, ClassLoader>();
- private static final ApplicationLoaders gApplicationLoaders
- = new ApplicationLoaders();
+ private static final ApplicationLoaders gApplicationLoaders = new ApplicationLoaders();
}