带有androrm库的NoClassDefFoundError

时间:2012-05-05 07:58:43

标签: java android

通用集合:

class B {}
class A extends A {}

List<Class<? extends B>> bs = new ArrayList<Class<? extends B>>();
bs.add(A.class);

正常工作(如预期的那样)。

但是当我尝试使用androrm(http://androrm.the-pixelpla.net/)库时:

class A extends com.orm.androrm.Model {}
List<Class<? extends com.orm.androrm.Model>> models = new ArrayList<Class<? extends com.orm.androrm.Model>>();
models.add(A.class);

我收到运行时错误:

E/AndroidRuntime(2177): java.lang.NoClassDefFoundError: com.my.android.A

我不明白为什么?

2 个答案:

答案 0 :(得分:1)

我认为你不是在android模拟器上用你的应用程序导出androrm库。

如果要在运行时使用androrm库,则应将androrm库jar保存在应用程序的assets /文件夹中。

如果您正在使用eclipse,请右键单击项目并转到“项目属性”。您将找到一个名为“构建路径”的选项卡。在名为“Libraries”的子选项卡下添加您正在使用的androrm库(在assets /文件夹中),并确保在“Order and Export”选项卡的子选项卡上单击export androrm library。

这应该将类路径中的“export”标志设置为“true”。现在运行您的应用程序,看看是否可以解决错误。

答案 1 :(得分:1)

如果您使用的是ADT 17或以上版本

然后创建文件夹 libs 并将所有 jar 放在此文件夹中

必须看到此答案https://stackoverflow.com/a/10046725/1289716