【问题标题】:NoClassDefFound error with OrmliteSqliteOpenHelperOrmliteSqliteOpenHelper 出现 NoClassDefFound 错误
【发布时间】:2010-11-27 05:04:19
【问题描述】:

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

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

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

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

【问题讨论】:

  • Kyle,哪个类得到 NoClassDefFound 异常? OrmliteSqliteOpenHelper 基类还是您的子类?您可以发布精简的类层次结构吗?

标签: java android eclipse sqlite ormlite


【解决方案1】:

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

为什么会这样?我不知道,也许有人可以启发我们这个事实。
它有效吗?现在……

【讨论】:

    【解决方案2】:

    我是如何解决这个问题的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      • 1970-01-01
      • 1970-01-01
      • 2016-02-02
      • 2016-01-12
      • 1970-01-01
      相关资源
      最近更新 更多