通用集合:
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
我不明白为什么?
答案 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 放在此文件夹中