lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey
added in API level 3

DexClassLoader

public class DexClassLoader
extends BaseDexClassLoader

java.lang.Object
   ↳ java.lang.ClassLoader
     ↳ dalvik.system.BaseDexClassLoader
       ↳ dalvik.system.DexClassLoader


A class loader that loads classes from .jar and .apk files containing a classes.dex entry. This can be used to execute code not installed as part of an application.

Prior to API level 26, this class loader requires an application-private, writable directory to cache optimized classes. Use Context.getCodeCacheDir() to create such a directory:

   File dexOutputDir = context.getCodeCacheDir();
 

Do not cache optimized classes on external storage. External storage does not provide access controls necessary to protect your application from code injection attacks.

Summary

Public constructors

DexClassLoader(String dexPath, String optimizedDirectory, String librarySearchPath, ClassLoader parent)

Creates a DexClassLoader that finds interpreted and native code.

Inherited methods

Public constructors

DexClassLoader

added in API level 3
public DexClassLoader (String dexPath, 
                String optimizedDirectory, 
                String librarySearchPath, 
                ClassLoader parent)

Creates a DexClassLoader that finds interpreted and native code. Interpreted classes are found in a set of DEX files contained in Jar or APK files.

The path lists are separated using the character specified by the path.separator system property, which defaults to :.

Parameters
dexPath String: the list of jar/apk files containing classes and resources, delimited by File.pathSeparator, which defaults to ":" on Android

optimizedDirectory String: this parameter is deprecated and has no effect since API level 26.

librarySearchPath String: the list of directories containing native libraries, delimited by File.pathSeparator; may be null

parent ClassLoader: the parent class loader