我创建了Android测试项目,并希望在其上使用JMOCK。 我将以下jar包含在我的项目类路径
中直到编译我收到此错误消息:
[2012-07-06 17:14:40 - mockTest] Dx ...在字节码偏移0000001b locals [0000]:Lorg / hamcrest / generator / qdox / parser / impl / JFlexLexer; 当地人[0001]:我当地人[0002]:[C locals [0003]:[C locals [0004]:[I] 当地人[0005]:[本地人[0006]:当地人[0007]: 当地人[0009]:当地人[000a]:当地人[000a]: locals [000b]:locals [000c]: locals [000d]:locals [000e]:locals [000f]: locals [0010]:stack [top0]:[B ...在工作时 阻止001b ...在yylex方法上工作时:()我......在处理时 yylex()我...在处理时 组织/ hamcrest /发电机/ qdox /分析器/参数impl / JFlexLexer.class
[2012-07-06 17:14:40 - mockTest] Dx 1错误;中止[2012-07-06 17:14:40 - mockTest]转换为Dalvik格式失败,错误1
有什么问题?类路径中是否有不正确的jar?
答案 0 :(得分:0)
问题在于JMock使用动态字节码生成,但Dalvik无法做到这一点:动态字节码生成被编译为Dalvik不支持的JVM字节码;因此转换时出错。
不幸的是,这意味着您无法在Android上使用JMock - 如果您需要进行测试,则必须在JVM上运行这些测试。
答案 1 :(得分:0)
您似乎已将JAR
包含在相同的包名中?在Android Dependencies中打开所有jar并确保每个jar都有Unique包。