2

通用集合:

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

我不明白为什么?

4

2 回答 2

1

我认为您没有在 android 模拟器上使用您的应用程序导出 Androrm 库。

如果你想在运行时使用安卓库,那么你应该将安卓库 jar 保存在应用程序的 assets/ 文件夹中。

如果您使用的是 Eclipse,则右键单击项目并转到“项目属性”。您将找到一个名为“构建路径”的选项卡。在名为“库”的子选项卡下添加您正在使用的安卓库(在资产/文件夹中),并确保在“订购和导出”选项卡的子选项卡上单击导出安卓库。

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

于 2012-05-05T08:15:34.043 回答
1

如果您使用 ADT 17 或更高版本

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

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

于 2012-05-05T08:24:15.233 回答