LoginSignup
4
4

More than 3 years have passed since last update.

MacでCordova開発環境の構築〜2019年版〜

Last updated at Posted at 2019-07-18

概要

iOS13で、UIWebViewがついに廃止されるということで、Cordova6.4.2のアプリに手を入れないといけなくなりました。
諸々の事情により、新規でCordova環境を構築し、旧版の魔改造分をマージすることにしたのですが、Android環境構築にハマりましたので備忘録として残しておきます。

環境

  • macOS High Sierra
  • Xcode 10.1
  • Android Studio 3.4.2
  • Gradle 5.1.1

この記事で一番大事なこと

JDK8を使おう!

Cordovaインストール

nodebrew入れて、cordovaインストールしましょう。

  $ curl -L git.io/nodebrew | perl - setup
  $ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile
  $ source ~/.bash_profile
  $ nodebrew install-binary stable
  $ nodebrew ls
  v12.6.0
  $ nodebrew use v12.6.0
  $ node -v
  v12.6.0
  $ npm -v
  6.9.0
  $ npm install -g cordova
  $ cordova -v
  9.0.0 (cordova-lib@9.0.1)

Android StudioでSDKツールのダウンロード

スクリーンショット 2019-07-18 15.05.45.png
スクリーンショット 2019-07-18 15.06.12.png

Android Studioで仮想デバイスの作成

スクリーンショット 2019-07-18 15.05.05.png

JDK8のインストール

JDK12でやってる限り、下記のようなエラーが延々と解消しません。

Android platform:
  ERROR: android: Command failed with exit code 1 Error output:
  エラー: メイン・クラスjava.se.eeが見つからなかったかロードできませんでした

これは、おそらく、java.se.eeが完全に廃止されたということのようです。
JDK9では、DEFAULT_JVM_OPTSに、

-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee

を追加すれば大丈夫のようですが、JDK12ではこれでも駄目でした。
(JDK8でやる場合は、このオプションをつけると逆にエラーになってハマります。JDK8の場合はつけないようにしましょう。)

【参考】
Java 9 で deprecated になったモジュールによる例外発生の問題にちゃんと対処したい

JDK8のインストールですが、OracleのJDK8はライセンス改定されましたので、OpenJDKを使用します。
下記よりDL可能です。(OpenJDK8は2023年6月までサポート。)
https://adoptopenjdk.net/archive.html

PATH設定(Gradle、SDK、JAVA_HOME)

Gradle、SDK、JAVA_HOMEのPATH設定が必要です。

$ vi  ~/.bash_profile
export PATH=$PATH:"/Applications/Android Studio.app/Contents/gradle/gradle-5.1.1/bin"

export PATH=${PATH}:/Development/android-sdk/platform-tools:/Development/android-sdk/tools
export ANDROID_SDK_ROOT="$HOME/Library/Android/sdk"
export PATH="$ANDROID_SDK_ROOT/emulator:$ANDROID_SDK_ROOT/tools:$PATH"
export PATH="$PATH:$ANDROID_SDK_ROOT/tools"
export PATH="$PATH:$ANDROID_SDK_ROOT/platform-tools"

export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home -v "1.8"`
PATH=${JAVA_HOME}/bin:${PATH}

反映

$ source ~/.bash_profile

Gradleの実行権限

chmod +x "/Applications/Android Studio.app/Contents/gradle/gradle-5.1.1/bin/gradle"

Cordovaプロジェクトの作成と起動

準備が完了しましたのでプロジェクトを作成します。

$ cordova create sample-app
$ cd sample-app/
$ cordova platform add ios android

targetエミュレータの指定

$ cordova run android --list 
Available android devices:
Available android virtual devices:
Nexus_5_API_22
$ cordova emulate android --target="Nexus_5_API_22"

環境の確認

$ cordova info

cordova infoでエラーがなければ、問題なくエミュレータ起動できるはずです。

  • Android
$ cordova run android
  • iOS
$ cordova run ios

まとめ

JDK8を使おう!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4