我正在尝试在运行时在我的Android应用程序中从JAR文件加载类。我正在使用DexClassLoader。
我正在执行以下步骤: - 某些JAR文件存在于硬盘上的某个内存位置。我正在准备该JAR的dex文件并将其存储在应用程序的appdex文件夹中。 然后我使用DexClassLoader加载类,然后创建类的实例并使用Interface调用它的方法。
问题 - 只有我在android项目的libs文件夹中包含JAR文件(在eclipse上)才有效。 如果我从libs文件夹中删除JAR文件,那么在调用loadClass()方法时,它会抛出ClassNotFoundException。 理想情况下,它应该没有在libs文件夹中包含JAR。我想删除该依赖项(来自libs文件夹)。
我错过了什么吗?
P.S。 - 我创建了单独的android项目,我正在创建JAR并将其用作插件。
答案 0 :(得分:1)
我怀疑此错误是由于您为dex
文件指定的路径不正确所致。
查看this question: android dexclassloader get list of all classes的答案。如果您的路径不正确,那么建议的方法会给您一个例外。