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 です。