繁体   English   中英

OrmliteSqliteOpenHelper的NoClassDefFound错误

[英]NoClassDefFound error with OrmliteSqliteOpenHelper

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

这是一个关键:从测试项目中访问项目时,项目中的其他所有功能不仅可以正常工作,而且当我将此文件移动到测试项目中时,它也可以完美运行! 问题在于,它必须位于实际项目中,以便其他组件对其进行调用。 有没有人遇到此错误,或者有任何想法我可能会出错?

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

我很沮丧:/感谢您的协助!

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

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

有解决方法:

  • 从测试项目的“构建路径”中删除OrmLite。
  • 从主项目中导出它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM