Android開発において新規でライブラリを取り込む際にちょいちょい発生するMultiple dex files define
前から厄介なヤツだったんですが、Gradleを使い始めた頃に依存関係で悩まされることが多かったのでそんな時に僕がよくやっていたDependency Reportを使っての解決方法をメモ
Dependency Reportを出力してみる
やり方はコマンドラインから出力したいプロジェクト直下に行って以下のコマンドを叩くだけ
$ cd <プロジェクトのディレクトリ>
$ ./gradlew -q dependencies
*_releaseApkの部分のみ抜粋
_releaseApk - ## Internal use, do not manually configure ##
+--- com.github.chrisbanes.actionbarpulltorefresh:library:+ -> 0.9.9
| \\--- com.github.castorflex.smoothprogressbar:library:0.4.+ -> 0.4.0
+--- com.squareup:otto:1.3.5
+--- com.jakewharton:butterknife:5.1.1
+--- com.github.chrisbanes.photoview:library:1.2.2
+--- com.android.support:appcompat-v7:19.+ -> 19.1.0
| \\--- com.android.support:support-v4:19.1.0
+--- com.google.android.gms:play-services:5.0.77
| \\--- com.android.support:support-v4:19.1.0
\--- sample:facebook:unspecified
実際に取り込まれるバージョンも確認できるのでかなり便利
build.gradleを修正
上では割愛してますが、別プロジェクトにしているfacebook内でもsupport-v4を利用しているためappcompat-v7、play-servicesでsupport-v4をexclude moduleの対応をすれば解決 *Before
dependencies {
compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+'
compile 'com.squareup:otto:1.3.5'
compile 'com.jakewharton:butterknife:5.1.1'
compile 'com.github.chrisbanes.photoview:library:1.2.2'
compile 'com.android.support:appcompat-v7:19.+'
compile 'com.google.android.gms:play-services:5.0.77'
compile project(':facebook') // この内部でもsupport-v4が使われている
}
dependencies {
compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+'
compile 'com.squareup:otto:1.3.5'
compile 'com.jakewharton:butterknife:5.1.1'
compile 'com.github.chrisbanes.photoview:library:1.2.2'
compile ('com.android.support:appcompat-v7:19.+') { exclude module: 'support-v4' }
compile ('com.google.android.gms:play-services:5.0.77') { exclude module: 'support-v4' }
compile project(':facebook') // この内部でもsupport-v4が使われている
}
_releaseApk - ## Internal use, do not manually configure ##
+--- com.github.chrisbanes.actionbarpulltorefresh:library:+ -> 0.9.9
| \\--- com.github.castorflex.smoothprogressbar:library:0.4.+ -> 0.4.0
+--- com.squareup:otto:1.3.5
+--- com.jakewharton:butterknife:5.1.1
+--- com.github.chrisbanes.photoview:library:1.2.2
+--- com.android.support:appcompat-v7:19.+ -> 19.1.0
+--- com.google.android.gms:play-services:5.0.77
\--- sample:facebook:unspecified