スマホアプリの開発に Monaca を使っていたのですが、無料の範囲で出来ることに限界を感じてきたので、Cordova で開発してみることにしました。
インストール後、android のエミュレーターを起動しようとしたところで色々と困ったところがあったので、トラブルと対処方法を記録しておきます。
Cordova インストール方法
基本はこちらの記事を参考にインストールしました。簡潔に手順が書かれていて、すごく分かりやすかったです。
https://qiita.com/u4da3/items/14c98487fa85df21ea0d
nodebrew、cordova、Xcode、JDK、android studio の順にインストールして、sdk の $PATH を .profile に設定しました。
新しいプロジェクトを作成して cordova run で browser、ios・・とエミュレーターを起動させたところ・・・ android のエミュレーターが起動しない!
エラー1:Gradle が見つからない
CordovaError: Could not find an installed version of Gradle either in Android Studio ...
android studio をインストールした時に、Gradle もあるはずなのに見つからないらしい。
ネットで対策を探したら、ちょっと古い Cordova と android studio の組み合わせで起こる問題のようです。
.profile に Gradle のパスを反映させて解消。android studio のパスにはスペースが含まれていたので、バックスラッシュでエスケープしています。
echo 'export PATH=/Applications/Android\ Studio.app/Contents/gradle/gradle-4.1/bin:$PATH' >> .profile
source ~/.profile
もう一度 cordova run android を実行すると、またエラー発生。
エラー2:spawn EACCES
Error: spawn EACCES
どうやら先ほどパスを通した Gradle の実行権限がないらしい。chmod で対応。
chmod +x /Applications/Android\ Studio.app/Contents/gradle/gradle-4.1/bin/gradle
これでOKか?と cordova run android を実行すると、またエラー発生。
エラー3:No target specified and no devices found, deploying to emulator
ターゲットが見つからないとな。
参考にしていた手順の「Android Virtual Device にチェックを入れる」を忘れてたのか・・・?
android studio で適当にプロジェクトを作ってから、AVD Manager を起動してから 「Nexus_5X_API_27_x86」 の仮想デバイスを作ってみたけれど、エラーは解消出来ず。
新しいAPIでは良くないのかと 「Nexus_5X_API_24」 を作ってみると、エラーなくエミュレーターが起動しました!
なかなか遠い道のりでした。