我的 Android 项目有大约 70 个 Robolectric 测试,它们都通过了 2 个月。不知何故,从今天开始,测试失败并出现奇怪的错误消息:
- java.lang.IllegalStateException:您需要在此活动中使用 Theme.AppCompat 主题(或后代)。
- java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient
- 也无法加载资源文件
我没有更改我的代码,所以它不能是与代码相关的问题。我清理了项目和 gradle,但没有帮助。几天前我确实做了一个由 Android Studio 推广的更新,不确定是否相关。
还有其他人遇到这个问题吗?我该如何摆脱这种糟糕的状态?
- 编辑 -
Robolectric 版本很重要!基于评论中的建议的有趣观察,robolectric 版本与故障率:
- 3.3.1,约 40% 的测试失败。
- 3.2.2,~40% 失败(与 3.3.1 相同)
- 3.1.4,~15% 失败
- 3.1.2,~0% 失败(有警告,见下文)
- 3.1, 100% 失败 (!)
另一个观察结果是不一致。如果我跑了整套,都通过了!但是,如果我只运行一个测试文件,则所有失败并显示以下消息:
没有这样的清单文件:build/intermediates/bundles/debug/AndroidManifest.xml