1

我有一个扩展 OrmliteSqliteOpenHelper 的类,以便为 Android 应用程序提供持久性模块。问题是,每当我从 Eclipse 中的测试项目访问此类时,它都会引发 NoClassDefFound 异常。源代码似乎很好,因为包被导入并且 Eclipse 没有突出显示任何东西会出错,但确实如此。

这是踢球者:从测试项目访问时,不仅项目中的其他所有内容都可以正常工作,而且当我将此文件移动到测试项目中时,它可以完美运行!问题是它需要在实际项目中才能让其他组件调用它。有没有人遇到过这个错误或者知道我哪里出错了?

类路径设置正确,因为所有其他类都正常工作,并且测试项目始终将主项目添加到其类路径中。我还尝试将 OrmliteSqliteOpenHelper 对象移动到内部类:这允许外部类可见和触摸,但是一旦它尝试实例化内部类,就会发生相同的错误。此外,如果我将此文件复制到同一个包中的两个项目中,则每当主项目中的某些内容尝试访问此类时,都会出现错误,指出“预验证类中的类引用解析为意外实现”。显然,在两个项目之间编译/处理类的方式存在一些差异。

我很困惑:/非常感谢您的帮助!

4

2 回答 2

0

好吧,朋友们,我似乎已经为这个问题找到了一个解决方案:我将整个“src”文件夹从主项目链接到测试项目的文件夹中。现在,当它搜索我的文件所在的特定包时,它首先在自己的源树中找到该文件。万岁!

为什么这行得通?我不知道,也许有人可以启发我们这个事实。
它有效吗?目前...

于 2010-11-27T05:54:37.497 回答
0

这是我解决问题的方法:

  • 从测试项目的构建路径中删除 OrmLite。
  • 从主项目中导出它们。
于 2011-04-21T13:05:42.197 回答