質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

4180閲覧

AndroidStudioでJackson使用について

vike

総合スコア17

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/03/07 23:58

AndroidStudioでのJackson使用について。

java

1import android.support.v7.app.AppCompatActivity; 2import com.fasterxml.jackson.databind.ObjectMapper; 3import java.io.IOException; 4import java.net.URL; 5 6public class MainActivity extends AppCompatActivity { 7 8 public static void main( String[] args ) throws IOException 9 { 10 //jacksonのマッパーを設定 11 ObjectMapper mapper = new ObjectMapper(); 12 jac response = mapper.readValue( 13 14 //URLの取得 15 new URL("http://express.heartrails.com/api/json?method=getAreas"), 16 jac.class); 17 } 18}

java

1import lombok.Data; 2public class jac { 3 @Data 4 public class Response { 5 private Area response; 6 7 @Data 8 public class Area { 9 private String[] area; 10 } 11 } 12} 13

http://kikutaro777.hatenablog.com/entry/2013/07/17/193327
上記のサイトのコードを使ったのですが以下のようなエラーが起きてしまいました。

エラー :Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE File1: /Users/xx/AndroidStudioProjects/jackson/app/libs/jackson-annotations-2.8.0.jar File2: /Users/xx/AndroidStudioProjects/jackson/app/libs/jackson-core-2.8.1.jar File3: /Users/xx/AndroidStudioProjects/jackson/app/libs/jackson-databind-2.8.7.jar

どのような対処を行えば良いでしょうか?
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

各ライブラリに含まれるMETA-INF以下のファイルを取り込もうとして、重複のエラーが出てしまっています。

META-INF以下のファイルは、
まぁ、Metaと書かれているぐらいなので、プログラムからしたら不要なファイルになります。

なので、ビルドの際にMETA-INF以下のファイル(とりあえず被ってるといわれているLICENSEファイル)
を取り込まないようする設定を追加しましょう。

モジュールディレクトリ配下にある、
build.gradleに下記の設定を追加します。

Gradle

1android { 2 3 //省略 4 5 packagingOptions { 6 exclude 'META-INF/LICENSE' 7 } 8}

これで大丈夫です。

他に1点だけ、ライブラリのバージョンが揃っていないのが気になりますが・・・

投稿2017/03/08 03:12

編集2017/03/08 03:21
abs123

総合スコア1280

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

abs123

2017/03/08 03:16

ん?さすがに"META-INF/*"はまずいのか
guest

0

"エラーメッセージから想像するに、複数のjarに同名のファイルが含まれていることが原因っぽい"
ようです。

参照
http://anton0825.hatenablog.com/entry/2015/01/16/154147

投稿2017/03/08 02:32

shotakeu

総合スコア386

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

下記に似たような質問がありました。こちらは確認済みでしょうか?
AndroidStudioでビルドが通らなくなった 【com.android.builder.packaging.DuplicateFileException】

また参考にしたというサイトでは Response クラスを定義しています。
jac クラスではなく、 Response クラスのまま、まずは確認してみることをお勧めします。

Java

1import lombok.Data; 2 3@Data 4public class Response { 5 private Area response; 6 7 @Data 8 public class Area { 9 private String[] area; 10 } 11}

投稿2017/03/08 00:27

ykws

総合スコア1236

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問