Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
公開中のアプリのメンテナンスでSDKをアップデートしたところ、端末へのインストール時にタイトルのようなエラーが発生した。
エラーの詳細は以下の通り
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit value 2
上記はStackoverflowで引っかかったエラーの内容をそのまま掲載しているが、私のアプリで発生していたエラーも全く同じ。stackoverflow.com
どうもAndroidStudio、つまりはAndroidのビルドシステムのアップデートにより仕様が変更された様子(詳細はしらない)。
リンク先に解決方法が書かれているが、ちょっと工程が多すぎ。
実際にはbuild.configにmultiDexEnableの項目を加えればよいみたい
とりあえずアプリは動くようになったので解決した。
ここまで書いてなんとなく理解がすすんだのだけど、build.configのdefaultConfigに書かなければいけない項目が変更されたのだろう。おそらく。
Androidは昔に比べれば安定しているとはいえアップデートが早く、仕様が固定されるとも限らないのは辛いですね。
それに比べWindowsやLinuxのような開発環境だと仕様が変わることはまずないし、開発手段もたくさんあるので気に入らなければ乗り換えれば良いから精神的に楽なんですよね。Windowsのデスクトップアプリを作ってて最近そういうことを実感してきました。
今回はここまで。