如果JAR未包含在libs文件夹中,则赋予ClassNotFoundException的loadClass()方法

时间:2013-08-07 06:48:34

标签: android

我正在尝试在运行时在我的Android应用程序中从JAR文件加载类。我正在使用DexClassLoader。

我正在执行以下步骤: -   某些JAR文件存在于硬盘上的某个内存位置。我正在准备该JAR的dex文件并将其存储在应用程序的appdex文件夹中。 然后我使用DexClassLoader加载类,然后创建类的实例并使用Interface调用它的方法。

问题 - 只有我在android项目的libs文件夹中包含JAR文件(在eclipse上)才有效。 如果我从libs文件夹中删除JAR文件,那么在调用loadClass()方法时,它会抛出ClassNotFoundException。 理想情况下,它应该没有在libs文件夹中包含JAR。我想删除该依赖项(来自libs文件夹)。

我错过了什么吗?

P.S。 - 我创建了单独的android项目,我正在创建JAR并将其用作插件。

1 个答案:

答案 0 :(得分:1)

我怀疑此错误是由于您为dex文件指定的路径不正确所致。

查看this question: android dexclassloader get list of all classes的答案。如果您的路径不正确,那么建议的方法会给您一个例外。