【问题标题】:VerifyError in android test-project build tools v17android测试项目构建工具v17中的VerifyError
【发布时间】:2012-03-22 18:57:24
【问题描述】:

自从安装了 v17 的 android 构建工具后,我的测试项目中出现了 VerifyError。

我的项目结构的简短描述:

所有 jar 文件都存在于我的主项目 libs 文件夹中

测试项目是驻留在我的主项目中的项目

所有 Instrumentation 测试与我的活动存在于同一个包中。

我在测试项目的 libs 文件夹中有一个只需要测试项目的 jar

有人看过吗?自更新以来,它发生在我所有的项目中。运行测试会产生 InstrumentationException:java.lang.VerifyError

【问题讨论】:

  • 尝试清理整个项目然后重建?
  • 我正在做干净的构建。很抱歉没有在帖子中澄清这一点。
  • UPDATE 所以看起来我们能够解决这个问题,但到目前为止,这样做的过程需要以下步骤:1. ant clean debug 在主项目 2. adb install main project 3. ant clean debug 在测试项目4. adb install test project 5. ant test 6. ant clean debug 在主项目上再次 7. adb install main project 8. ant test on test project 9. ... 10. Profit
  • 而且在你这样做了一次之后,你还需要继续破坏构建并且必须继续像这样清理吗?
  • 如果我重建测试项目没有。如果我修改主项目,我将得到 VerifyError 并且必须重做这些步骤。

标签: android testing junit dalvik


【解决方案1】:

x...@android.com 对我报告的问题进行了临时修复:http://code.google.com/p/android/issues/detail?id=27608

您可以尝试看看新的 anttasks.jar 文件是否可以解决您的问题。

它修复了我的问题。 NoClassDefFoundError when running Instrumentation test with ant

【讨论】:

  • 我可以确认替换的 anttasks.jar 为我解决了 ant 的这个问题。为了帮助未来的读者找到这个答案:我看到这个错误的另一个症状是测试子项目中的 ant“调试”任务会重新创建主应用程序 APK 并破坏它 - 我的大小将从 800KB 下降到 8KB ,我想这是遗漏了我所有的依赖 jar 类。
【解决方案2】:

就我而言,我有一个使用“robotium”库的测试项目。 我有同样的问题,并通过以下步骤解决,

  1. “Properties > Java Build Path > Libraries”,在我的测试项目中删除“Android Dependencies”。
  2. “Properties > Java Build Path > Libraries”,删除两个robotium jar并点击“Add JARs”在我的测试项目中重新导入robotium jar。
  3. “Properties > Java Build Path > Order and Export”,勾选robotium jar的两个checkbok(以及其他你想导出的)
  4. 清理我的测试项目。

我想你也解决了问题,祝你好运!

更多信息

  • How to fix the “NoClassDefFoundError” with ADT 17
  • Dealing with dependencies in Android projects
  • 【讨论】:

    • 删除“Android Dependencies”可能会产生副作用,例如不会再加载 sdk 中的自定义注解。
    • 没错!现在,您可以通过以下配置进行测试。测试项目 1.不导出:Android xxx 2.不导出:robotium 3.不导出:robotium 4.不导出:Android 依赖产品 1.不导出:Android xxx 2.不导出:android-support-v4.jar 3.不导出:Android 依赖项
    【解决方案3】:

    在我的情况下,首先在properties->build path->Libraries中添加robotium-solo-2.5,然后在properties->build path->Order and export中将robotium-solo-2.5.jar移动到顶部,终于我轻松解决了这个有趣的问题...

    【讨论】:

      【解决方案4】:

      “Properties > Java Build Path > Order and Export”,勾选所有要导出的引用。

      【讨论】:

        【解决方案5】:

        Android 处理依赖项的方式最近有changed。如果您使用的是 eclipse,那么只需删除您的 jar 导入并将它们放在项目根目录中的“libs”文件夹中,所有内容都会自动导入。

        【讨论】:

          猜你喜欢
          • 2011-01-28
          • 2012-04-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-16
          • 2012-07-29
          • 1970-01-01
          相关资源
          最近更新 更多