com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

# ☆Eclipseでゴリゴリ開発したAndroidプロジェクトをAndroidStudioへ開発環境を移行するために、Import project (Eclipse ADT, Gradle, etc.)をやったあとの開発。
　
メモと資料としてまとめていた内容です。
☆の内容でAndroidプロジェクトを開発していると以下のように遭遇しました笑
　　
Eclipseで開発していたAndroidプロジェクト
↓
ある理由(※1)でAndroidStudioに移行することに
↓
AndroidStudioには心優しいサポートがあった！
↓
Import projectを使ってAndroidStudioのAndroidプロジェクトにする
↓
.gradleや.propertiesファイルが生成されてEclipse+AndroidStudioプロジェクトとなる
↓
いろいろ設定し、ビルドできるように調整！
↓
!!!？
↓
いろんなバグが現れて、ググって全滅する!!
↓
数時間後...
↓
やっとビルドできるようになり、Android端末へアプリを転送できた！！
↓
そして開発が進みめでたしめでたし(、、のはずだった)
↓
↓
↓
数日後...
↓
ある理由(※2)でbuild.gradleでプロジェクトの設定を行っていると
↓
!!!!？？
↓
謎のバグが現れてわけがわからず、、しかもググっても日本語も英語すらちゃんとした記事が見つからない!!
↓
☆

***※"ある理由"について***
※1: [googleがEclipseでのAndroid開発のサポート終了](http://android-developers.blogspot.jp/2015/06/an-update-on-eclipse-android-developer.html)により、最新のAndroidバージョンへの対応を開発するにはAndroidStudioを使用しなければならない
※2: 新しいSDKやライブラリなどを扱いたいため.gradleでモジュールの導入するとき

　　
上記の状況でタイトルのエラーが起きました。
大きく2つのエラーが起きてメモしていたので、さらっと解説します。


## 環境
MacBook Air 10.10.5(Yosemite)
AndroidStudio 1.4.3


## Process command /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/bin/java finished with non-zero exit value 2について
　
***参考にした記事***
[Having and error related to dexFlavorEnterpriseDebug and finished with non-zero exit value 2](http://stackoverflow.com/questions/28843527/having-and-error-related-to-dexflavorenterprisedebug-and-finished-with-non-zero)

[app:dexDebug](https://teamtreehouse.com/community/appdexdebug)

[com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException](http://stackoverflow.com/questions/30823518/com-android-ide-common-process-processexception-org-gradle-process-internal-exe)

　
要は環境が変わったため、今までAntで管理していたライブラリがGradleに100%移行できないってイメージ。
でも、じゃあなぜエラーではjdkがどーのこーどでビルドできないよって言ってるのにライブラリの管理の問題なのか？と思われた人もいるかと。おそらく、このエラーの原因を作った張本人がgoogle-play-servicesのライブラリだからである。

このエラーは以下の対応で回避できました。

```
dependencies {
    ...
    compile 'com.android.support:multidex:1.0.0'
}

defaultConfig {
    ...
    multiDexEnabled true
}
```
　
だが、次にこんなエラーが発生。。

```
Execution failed for task ':packageAllDebugClassesForMultiDex'. 
> java.util.zip.ZipException: duplicate entry: android/support/v4/view/MotionEventCompatEclair.classについて
```

## java.util.zip.ZipException: duplicate entry: android/support/v4/view/MotionEventCompatEclair.classについて
　
***参考にした記事***
[java.util.zip.ZipException: duplicate entry during packageAllDebugClassesForMultiDex](http://stackoverflow.com/questions/26966843/java-util-zip-zipexception-duplicate-entry-during-packagealldebugclassesformult)


原因は、android-support-v4.jarをlib配下に置いて使っていたため発生した模様。
おそらく、他android-support系の.jarも似たようなエラーが出るのではないかと思います。
　
今回は以下の対応でエラーを回避できました。
 
```
dependencies {
    ...
    compile "com.android.support:support-v4:22.2.0"
}
```


## まとめ
　
私もまだまだ勉強不足なのでわからないことだらけです。
ただ、Androidの扱いにはだいたいわかってきた感じで、エラーと対処法をメモしていました。
　
今回の内容は、おそらくAndroidをガッツリ触ってないけど、Unityやcocos2d-xでゲームやXamarinなどのマルチ/クロスプラットフォーム開発を経験して、Eclipseで開発されているAndroidプロジェクトAndroidStudioに移行して、躓いて、Android開発の管理に困っている人向けではないかと思います。

※また分かり次第、アップデートしていきます。