好吧艾玛要杀了我。我已经在这上面花了两天时间了。
艾玛现在有两个问题
com.vladium.emma.EMMARuntimeException: [CLASS_STAMP_MISMATCH] runtime version of class xxx in the coverage data is not consistent with the version of this class in the metadata, possibly because stale metadata is being used for report generation。虽然我能忍受这些事故,但我并不打算修复它,
INSTRUMENTATION_RESULT: shortMsg=Process崩溃了。执行INSTRUMENTATION_CODE: 0
然而,我希望看到我的报道结果。
我试过:
我对此错误的理解是安装了apk,并且在单元测试中包含不同的二进制文件,因此它的元数据信息与生成的coverage.em过时了。
我可以确定这在我的情况下是不可能的,因为我清洁,蚂蚁清理,甚至清除了整个工作空间和电话内存。现在对我来说一点意义都没有。
请帮忙~
我正在使用Android r16,NDK5c,以及Ant和Emma的默认设置。
发布于 2012-09-17 12:00:41
我的Android项目(它通过JNI使用本地代码第三方库)也出现了同样的问题。事实证明,在这种情况下,艾玛的错误信息有点误导人。这是由于在主机上静态生成的覆盖元数据(coverage.em)与设备(coverage.ec)上应用程序运行时收集的覆盖率数据不匹配而触发的。事实上,这不仅是一个“错配”,而且coverage.ec是完全缺失的。这是由于本机代码崩溃造成的:在Android上,本机代码崩溃也会关闭相关的Java进程,实际上甚至会重新启动VM。这意味着艾玛也被杀死了,而且它再也没有机会将coverage.ec文件刷新到磁盘上,这就是它丢失的原因。
我想知道让艾玛在坠机前更频繁地刷新coverage.ec文件是否有意义,但同样值得怀疑的是,不完整的覆盖信息是否有价值
因此,长话短说,解决这一问题的最佳方法是修复您的本机代码以避免崩溃。
发布于 2014-11-10 08:24:30
我在android上使用艾玛的时候也遇到了这个问题。这是因为从sdcard中提取的coverage.ec与coverage.em不一致。尝试重新构建项目的仪器化版本。尝试以下步骤:
有关详细信息,您可以参考艾玛代表Android。
https://stackoverflow.com/questions/8981777
复制相似问题