【问题标题】:Android, Maven and Jackson安卓、Maven 和杰克逊
【发布时间】:2013-04-26 11:03:30
【问题描述】:

我正在尝试在我的 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。

【问题讨论】:

    标签: android maven jackson android-testing android-maven-plugin


    【解决方案1】:

    看起来这是known issue。一种解决方案是将以下内容添加到您的依赖项中:

    <scope>provided</scope>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 2011-08-25
    • 2020-04-12
    相关资源
    最近更新 更多