ionicでCapacitorを利用する場合の簡単な実行方法をメモします。
あと、最新のJava環境でいろいろエラーでるのでその対応もメモ。
準備
もし、ionic-cliをインストールしてなければインストール。
npm install -g @ionic/cli
追加でnpm install -g native-runとしておいてもいいかもしれません。
プロジェクトの生成
プロジェクトを生成します。
ionic start ionic-website-cap blank --type=angular --capacitor
Androidで動かす
まず、プラットフォームを追加。
このときandroidフォルダが生成されます。
ionic capacitor add android
実行。
ionic capacitor run android
実行するとどのエミュレータ(端末)で動かすか確認してきます。エミュレータは自動で起動してくるようです。便利。
iOSで動かす
まず、プラットフォームを追加。
ionic capacitor add ios
このときiosフォルダが生成されます。
実行。
ionic capacitor run ios
Javaの環境調整
ionicのAndroid実行環境では、
- Cordova環境はJava8(1.8)
- Capacitor環境はJava11
が、標準となっているようです。
バージョンが合ってないとエラーがでることがあります。
そんなときは複数のJDKを切り替えながら利用する必要があります。
私の環境ではJDK11だとCordovaでもCapacitorでもとりあえず動きました(ビルドできました)。
JDKのインストールと切り替え(Mac)
Javaのバージョンの切り替えにはjenvなども使えますが、いちいちめんどいので、私は以下の方法で切り替えて利用しています。
インストールされているJDKの確認
/usr/libexec/java_home -V
私の環境の場合、下記のように表示されます。
19.0.2 (x86_64) "Azul Systems, Inc." - "Zulu 19.32.13" /Library/Java/JavaVirtualMachines/zulu-19.jdk/Contents/Home
17.0.3 (x86_64) "Oracle Corporation" - "Java SE 17.0.3" /Library/Java/JavaVirtualMachines/jdk-17.0.3.jdk/Contents/Home
11.0.18 (x86_64) "Homebrew" - "OpenJDK 11.0.18" /usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home
1.8.331.09 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_331 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_331.jdk/Contents/Home
切り替え
.zshrcの中で、JAVA_HOMEを動的に指定し、バージョンを書き換えることで切り替えられるようにしています。
export JAVA_HOME=$(/usr/libexec/java_home -v 11)
1.8の場合は1.8と記述。
切り替えたあとはたらしくコンソールを開くか、sourceコマンドで値を反映する必要があります。
source .zshrc
古いJavaのインストール
古いJavaは下記のようにすればインストールされます(11の例)。
brew install openjdk@11
ただ、認識させるためには下記のようにシンボリックリンク等を手動で貼る必要があるみたいです。
sudo ln -sfn $(brew --prefix)/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
メモ
エラーのでるJavaのバージョンでionic capacitor add androidして生成したandroidのフォルダは一度削除したほうがいいでしょう(ファイル形式等のエラーがでる場合がある)。