1

我正在尝试从服务器加载类文件并使用不同的类加载器对其进行实例化,但没有成功。

我试过了DexClassLoaderURLClassLoaderPathClassLoader。无论我做什么,我得到的唯一东西就是一个ClassNotFoundExceptionfromloadClass方法。

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

  • 包含class文件和sex文件的jar文件
  • 包含类文件但没有性文件的jar文件
  • 裸类文件

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

错误:java.lang.ClassNotFoundException:在路径上找不到类“FormTestView”:DexPathList[[zip file“/data/data/[PACKAGE_NAME]/app_test_folder/test.jar”],nativeLibraryDirectories=[/vendor/lib, /系统/库]]

任何想法?

4

1 回答 1

0

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

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

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

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

于 2016-08-25T14:08:36.020 回答