Android Studio 1.5.1で確認しています。
Android Studio上で、ライブラリを追加したとたん、以下のタスクから進まなくなりました。
:app:transformClassesWithDexForDebug
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2
AndroidStudio上のエラーメッセージを見てもまったくわからないので
↑を参考にコマンドラインからビルドしてみました。
bash <ANDROID_STUDIO_HOME>/gradle/gradle-<version>/bin/gradle :app:assembleDebug
例:私の環境の場合
cd [プロジェクトのディレクトリ]
bash /Applications/Android\ Studio.app/Contents/gradle/gradle-2.8/bin/gradle :app:assembleDebug
と、以下のメッセージをゲットしました。
:app:transformClassesWithDexForDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:484)
at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:261)
at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:473)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:161)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)
:app:transformClassesWithDexForDebug FAILED
どうやらライブラリを追加した結果、メソッド数の上限を超えてしまった模様。
ていうかメソッド数に上限なんてあったのね。
公式サイトを見ながら対処
Building Apps with Over 65K Methods
http://developer.android.com/intl/ja/tools/building/multidex.html
build.gradleを修正
build.gradle
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
Manifestのアプリケーションも修正
AndroidManifest.xml
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
私の環境ではこれで解消しました。
参考になれば。