概要
新しいプロジェクトを作成して、ある検証を行いたかったのですがエラーが出て数分悩みました。
結果を知ればなんてことのない内容ですが、Android初心者やPC初心者はてこずるかも。
バージョン
Android Studio 1.4
jdk 1.7.0_75
ターゲット: APILevel.24(Android 7)
状況
起きたこととしては、次のエラーが発生。
エラー :Execution failed for task ':app:preDexDebug'.
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 1
内容
どうもAPIレベル24(Android 7)にターゲットを設定することで起きる。
おそらく多くの人が、「Android Studio1.4かよ、バージョンあげろよw」って思うだろうが、確かにそうでした。
別端末で現在(2016/08/3)最新のAndroid Studio 2.1.2をダウンロードして同じことをやってみたがjdk1.7でもなんなくビルドが通りました。
おそらく1.kは1.5あたりまでなので、1.kと2.kで違うかもしれません。
そして、結論として次章である。
結論
対応としては2点。
・1. Android Studio1.kを最新にアップデートする。
・2. ツールバー > File > Project Structure...(ショートカットでcommand + ;)を選択し、Source CompatibilityとTarget Compatibilityをjdk1.7からjdk1.8に変更する。
まとめ
タイトルにも書いているようにjdk1.7が原因でした。
Android 7(nougat:ヌガー)から、jdk1.8サポートされるためこのエラーが起き、そもそもjdk1.7のものは使えなくなったようだ。
かれこれAndroidの開発を数ヶ月離れたせいでいろいろと今時に遅れてしまったので、おそらく今回の内容はすでに知っている人が多いはずだけどもメモとこれからAndroidの開発をする人向けにまとめました。
でも、おそらくこれからAndroidを開発していく人は1.kなんて使わないですよね笑
関係ないかw
てか、これ読む人ほぼいなくね?www
追記(記事投稿の数時間後...)
別端末で作業を続けていると、新しくAndroid Studio 2.1.2をDLしたので、APK自動ビルド(./gradlew assembleReleaseを実行。空っぽだからAPKビルドする前にDownloading httpts://services.gradle.org/distributions/gradle-2.10-all.zipが実行されました。)時に以下のエラーが起きました。
* What went wrong:
Execution failed for task ':app:compileReleaseJavaWithJavac'.
> compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
結局は、jdk1.8にしなくてはいけないのかな?w
まぁ、今後はそうだけど今はターゲットを全てAPILevel.23に戻して作業を再開しよう笑汗
とまぁ、仕事の合間にまとめたので、いい息抜きになりました笑