虚苦心観察ブログ

ブログ管理者である虚苦心が私利私欲に基づいて書いているブログです。主にガジェットのレビューだったり、画像処理のことだったりを記事にしています。

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の項目を加えればよいみたい

stackoverflow.com

とりあえずアプリは動くようになったので解決した。
ここまで書いてなんとなく理解がすすんだのだけど、build.configのdefaultConfigに書かなければいけない項目が変更されたのだろう。おそらく。


Androidは昔に比べれば安定しているとはいえアップデートが早く、仕様が固定されるとも限らないのは辛いですね。
それに比べWindowsLinuxのような開発環境だと仕様が変わることはまずないし、開発手段もたくさんあるので気に入らなければ乗り換えれば良いから精神的に楽なんですよね。Windowsのデスクトップアプリを作ってて最近そういうことを実感してきました。

今回はここまで。