Android
AndroidStudio

Java 9 で Androidプロジェクトの gradle でビルドができない

Java 9 が入っている環境でビルドができなくて困ったのが、Java 8 は入れるのは面倒だから入れたくない!!という人向けのメモ

なぜコマンドからビルドができない

Android Studio は jdk も内蔵しているので Java 9 を入れていてもビルドできる。しかし、gradle コマンドを実行する際は JAVA_HOME が利用されるので Java 9 が利用されてしまい実行できない。

手っ取り早い対処

前述のとおり Android Studio は jdk も内蔵しているので、こいつを利用するように JAVA_HOME を一時的に書き換えてから実行すればよい。

普通に実行するとこういう感じだが

ore@mypc:~/myproject$ ./gradlew 

FAILURE: Build failed with an exception.                                                                         

* What went wrong:                                                                                               
Could not determine java version from '9.0.4'.                                                                   

* Try:                                                                                                           
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.   

* Get more help at https://help.gradle.org                                                                       
ore@mypc:~/myproject$                                                                             

こんな感じで Android Studio が使用している jdk へのパスを export してやれば、とりあえずビルドはできるようになる。mac だったら mac の jdk のパスにいい感じに変える必要がある。

ore@mypc:~/myproject$ export JAVA_HOME="C:\Program Files\Android\Android Studio\jre" 

ore@mypc:~/myproject$ ./gradlew 
Welcome to Gradle 4.1.                                         

To run a build, run gradlew <task> ...                         

To see a list of available tasks, run gradlew tasks            

To see a list of command-line options, run gradlew --help      

To see more detail about a task, run gradlew help --task <task>

BUILD SUCCESSFUL in 2s                                         
1 actionable task: 1 executed                                  
ore@mypc:~/myproject$