我正在尝试在我的 Android 应用程序项目中使用 Jackson。其他一切都很好,但是通过 Maven 在 CI 中运行测试失败,如果我从 Eclipse 运行相同的测试它可以工作,但是我没有使用 Maven POM 文件,即我没有将项目导入为 Maven 项目,而是复制了 jackson JAR 进入 libs 文件夹。Jackson 依赖项被添加到应用程序 POM 中,如下所示:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.12</version>
</dependency>
我从 Jenkins 得到的错误如下所示:
java.lang.IllegalAccessError:预验证类中的类引用解析为意外实现
Logcat 打印以下内容:
Class resolved by unexpected DEX:
LmyClass;(0x41345f78):0x190e58 ref [Lorg/codehaus/jackson/map/ObjectMapper;] Lorg/codehaus/jackson/map/ObjectMapper;(0x41345f78):0x1a08b0
(LmyClass; had used a different Lorg/codehaus/jackson/map/ObjectMapper; during pre-verification)
这是我的代码中的以下行引起的:
ObjectMapper mapper = new ObjectMapper();
我正在运行的测试是 Android InstrumentationTestCase。