无法使用DexClassLoader,URLClassLoader或PathClassLoader加载类

时间:2016-04-12 12:03:20

标签: android urlclassloader dexclassloader

我试图从服务器加载一个类文件并使用它来实例化它 不同的班级装载机,但没有成功。

我尝试了DexClassLoaderURLClassLoaderPathClassLoader。无论我做什么,我唯一得到的是来自ClassNotFoundException方法的loadClass

我要做的第一件事就是下载:

  • 包含类文件和性文件的jar文件
  • 包含类文件但没有性文件的jar文件
  • 裸体课程文件

并将其存储到应用程序专用存储文件夹中。然后我尝试使用上面提到的ClassLoader实现之一加载该类,导致:

  

错误:java.lang.ClassNotFoundException:没找到类   " FormTestView"在路径上:DexPathList [[zip文件   " /数据/数据/ [PACKAGE_NAME] /app_test_folder/test.jar"],nativeLibraryDirectories = [/供应商/ lib中,   /系统/ lib中]]

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您是否在android-sdks / build-tools中使用dx工具转换了.jar文件?

如果您没有尝试,请使用以下命令:

./dx --dex --output yourJarDexConverted.jar yourJar.jar

生成的yourJarDexConverted.jar文件包含classes.dex,这是一个加密文件,包含分发为jar的应用程序所需的所有java类。