关于在运行时动态生成和加载java字节码到运行的Dalvik VM,已经多次询问(和回答)这个问题,但有没有办法在运行时将dex文件/字节码加载到应用程序中?
谢谢
在Android 5.0之前,我能够使用DexClassLoader和调用loadClass()方法动态加载DEX文件,但是使用最新的Android版本,我得到了一个ClassNotFoundException.
这是我在做的事情:
生成DEX文件.
../android-sdk/android-sdk-linux_86/build-tools/21.1.1/dx --dex --output=bin/output.dex bin/output.jar
Run Code Online (Sandbox Code Playgroud)创建一个DexClassLoader.
DexClassLoader cl = new DexClassLoader(
dexFile.getAbsolutePath(),
odexFile.getAbsolutePath(),
null,
mContext.getClassLoader());
Run Code Online (Sandbox Code Playgroud)呼叫 cl.loadClass("myMethod");
我知道ART使用dex2oat来生成一个由ART加载的ELF文件但是在步骤2中我生成了一个ODEX文件,因此我不需要在ART中运行以在运行时加载DEX文件,任何人都可以帮助我 ?