Stay organized with collections
    
    
      
      Save and categorize content based on your preferences.
    
  
  
    
  
  
  
  
    
    
    
  
  
    
    
  
  
DexClassLoader
  public
  
  
  
  class
  DexClassLoader
  
  
  
  
  
  
  
    extends BaseDexClassLoader
  
  
  
  
  
  
  
    
  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
| Inherited methods | 
|---|
|  | 
| 
    From class
      
        
          java.lang.ClassLoader
        
      
      
  
  
  
    | 
        
        
        
        
        
        void | 
      clearAssertionStatus()
      Sets the default assertion status for this class loader to
 falseand discards any package defaults or class assertion
 status settings associated with the class loader. |  
  
  
    | 
        
        
        
        final
        
        Class<?> | 
      defineClass(String name, byte[] b, int off, int len, ProtectionDomain protectionDomain)
      Converts an array of bytes into an instance of class Class,
 with a givenProtectionDomain. |  
  
  
    | 
        
        
        
        final
        
        Class<?> | 
      defineClass(String name, ByteBuffer b, ProtectionDomain protectionDomain)
      Converts a ByteBufferinto an instance
 of classClass, with the givenProtectionDomain. |  
  
  
    | 
        
        
        
        final
        
        Class<?> | 
      defineClass(byte[] b, int off, int len)
      
      This method was deprecated
      in API level 15.
    Replaced by defineClass(String, byte[], int, int) |  
  
  
    | 
        
        
        
        final
        
        Class<?> | 
      defineClass(String name, byte[] b, int off, int len)
      Converts an array of bytes into an instance of class Class. |  
  
  
    | 
        
        
        
        
        
        Package | 
      definePackage(String name, String specTitle, String specVersion, String specVendor, String implTitle, String implVersion, String implVendor, URL sealBase)
      Defines a package by name in this ClassLoader. |  
  
  
    | 
        
        
        
        
        
        Class<?> | 
      findClass(String name)
      Finds the class with the specified binary name.
        
    
 |  
  
  
    | 
        
        
        
        
        
        String | 
      findLibrary(String libname)
      Returns the absolute path name of a native library.
        
    
 |  
  
  
    | 
        
        
        
        final
        
        Class<?> | 
      findLoadedClass(String name)
      Returns the class with the given binary name if this
 loader has been recorded by the Java virtual machine as an initiating
 loader of a class with that binary name.
        
    
 |  
  
  
    | 
        
        
        
        
        
        URL | 
      findResource(String name)
      Finds the resource with the given name.
        
    
 |  
  
  
    | 
        
        
        
        
        
        Enumeration<URL> | 
      findResources(String name)
      Returns an enumeration of URLobjects
 representing all the resources with the given name. |  
  
  
    | 
        
        
        
        final
        
        Class<?> | 
      findSystemClass(String name)
      Finds a class with the specified binary name,
 loading it if necessary.
        
    
 |  
  
  
    | 
        
        
        
        
        
        Package | 
      getPackage(String name)
      
      This method was deprecated
      in API level 35.
    If multiple class loaders delegate to each other and define classes
 with the same package name, and one such loader relies on the lookup
 behavior of getPackageto return aPackagefrom
 a parent loader, then the properties exposed by thePackagemay not be as expected in the rest of the program.
 For example, thePackagewill only expose annotations from thepackage-info.classfile defined by the parent loader, even if
 annotations exist in apackage-info.classfile defined by
 a child loader. |  
  
  
    | 
        
        
        
        
        
        Package[] | 
      getPackages()
      Returns all of the Packages that have been defined by
 this class loader and its ancestors. |  
  
  
    | 
        
        
        
        final
        
        ClassLoader | 
      getParent()
      Returns the parent class loader for delegation.
        
    
 |  
  
  
    | 
        
        
        
        
        
        URL | 
      getResource(String name)
      Finds the resource with the given name.
        
    
 |  
  
  
    | 
        
        
        
        
        
        InputStream | 
      getResourceAsStream(String name)
      Returns an input stream for reading the specified resource.
        
    
 |  
  
  
    | 
        
        
        
        
        
        Enumeration<URL> | 
      getResources(String name)
      Finds all the resources with the given name.
        
    
 |  
  
  
    | 
        
        
        static
        
        
        ClassLoader | 
      getSystemClassLoader()
      Returns the system class loader.
        
    
 |  
  
  
    | 
        
        
        static
        
        
        URL | 
      getSystemResource(String name)
      Find a resource of the specified name from the search path used to load
 classes.
        
    
 |  
  
  
    | 
        
        
        static
        
        
        InputStream | 
      getSystemResourceAsStream(String name)
      Open for reading, a resource of the specified name from the search path
 used to load classes.
        
    
 |  
  
  
    | 
        
        
        static
        
        
        Enumeration<URL> | 
      getSystemResources(String name)
      Finds all resources of the specified name from the search path used to
 load classes.
        
    
 |  
  
  
    | 
        
        
        
        
        
        Class<?> | 
      loadClass(String name, boolean resolve)
      Loads the class with the specified binary name.
        
    
 |  
  
  
    | 
        
        
        
        
        
        Class<?> | 
      loadClass(String name)
      Loads the class with the specified binary name.
        
    
 |  
  
  
    | 
        
        
        static
        
        
        boolean | 
      registerAsParallelCapable()
      Registers the caller as
 #isRegisteredAsParallelCapable() parallel capable. |  
  
  
    | 
        
        
        
        final
        
        void | 
      resolveClass(Class<?> c)
      Links the specified class.
        
    
 |  
  
  
    | 
        
        
        
        
        
        void | 
      setClassAssertionStatus(String className, boolean enabled)
      Sets the desired assertion status for the named top-level class in this
 class loader and any nested classes contained therein.
        
    
 |  
  
  
    | 
        
        
        
        
        
        void | 
      setDefaultAssertionStatus(boolean enabled)
      Sets the default assertion status for this class loader.
        
    
 |  
  
  
    | 
        
        
        
        
        
        void | 
      setPackageAssertionStatus(String packageName, boolean enabled)
      Sets the package default assertion status for the named package.
        
    
 |  
  
  
    | 
        
        
        
        final
        
        void | 
      setSigners(Class<?> c, Object[] signers)
      Sets the signers of a class.
        
    
 |  | 
| 
    From class
      
        
          java.lang.Object
        
      
      
  
  
  
    | 
        
        
        
        
        
        Object | 
      clone()
      Creates and returns a copy of this object.
        
    
 |  
  
  
    | 
        
        
        
        
        
        boolean | 
      equals(Object obj)
      Indicates whether some other object is "equal to" this one.
        
    
 |  
  
  
    | 
        
        
        
        
        
        void | 
      finalize()
      Called by the garbage collector on an object when garbage collection
 determines that there are no more references to the object.
        
    
 |  
  
  
    | 
        
        
        
        final
        
        Class<?> | 
      getClass()
      Returns the runtime class of this Object. |  
  
  
    | 
        
        
        
        
        
        int | 
      hashCode()
      Returns a hash code value for the object.
        
    
 |  
  
  
    | 
        
        
        
        final
        
        void | 
      notify()
      Wakes up a single thread that is waiting on this object's
 monitor.
        
    
 |  
  
  
    | 
        
        
        
        final
        
        void | 
      notifyAll()
      Wakes up all threads that are waiting on this object's monitor.
        
    
 |  
  
  
    | 
        
        
        
        
        
        String | 
      toString()
      Returns a string representation of the object.
        
    
 |  
  
  
    | 
        
        
        
        final
        
        void | 
      wait(long timeoutMillis, int nanos)
      Causes the current thread to wait until it is awakened, typically
 by being notified or interrupted, or until a
 certain amount of real time has elapsed.
        
    
 |  
  
  
    | 
        
        
        
        final
        
        void | 
      wait(long timeoutMillis)
      Causes the current thread to wait until it is awakened, typically
 by being notified or interrupted, or until a
 certain amount of real time has elapsed.
        
    
 |  
  
  
    | 
        
        
        
        final
        
        void | 
      wait()
      Causes the current thread to wait until it is awakened, typically
 by being notified or interrupted.
        
    
 |  | 
Public constructors
    DexClassLoader
    
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 byFile.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 byFile.pathSeparator; may benull | 
      
        | parent | ClassLoader: the parent class loader | 
    
 
 
 
  
  
    
  
 
  
    
      
      
    
    
      
    
    
  
       
    
    
      
    
  
  
  Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
  Last updated 2025-02-10 UTC.
  
  
  
    
      [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[]]