アヤポコの雑記*2人目育児中

育児のこと、旅行のこと、仕事のこと。30代の第二子子育て中の雑記です。

【スポンサードリンク】

macでcordova環境を作ろうとしてつまづいたところ

monacaから脱出して自分で環境構築しようとしたがたくさんつまづいた。
手順をひきながら調べらながらでやっと到達した。
駆除したエラーの数々。。

npm install -g cordovaが実行できない

→nodebrewのインストールをcurlではなくてbrewでやってみる。

brew install node


brewコマンドを実行するとgccをインストールしなさいと怒られる.

Error: An exception occurred within a child process:
  CompilerSelectionError: nodebrew cannot be built with any available compilers.
Install GNU's GCC

gccを入れる。

brew install gcc

gccを入れてもまたまた怒られる。

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

xcrunがなくなったとかなんとか。これは同じ症状の人がたくさんいた。macのOSアップデートしたらなったとかなんとか。

xcode-select --install

これでこのエラーは消えた。

再度実行するも、npmが実行できない
→nodebrewのバージョンを指定すると実行できるように。

nodebrew use  v10.14.2

やっとここまででcordovaコマンドが使えるようになった。

cordova run iosでエラーがでる

CordovaError: Promise rejected with non-error: 'xcode-select: error: tool \'xcodebuild\' requires Xcode, but active developer directory \'/Library/Developer/CommandLineTools\' is a command line tools instance\n'    at cli.catch.err (/Users/username/.nodebrew/node/v10.14.2/lib/node_modules/cordova/bin/cordova:30:15)  at process._tickCallback (internal/process/next_tick.js:68:7)

インストールしているディレクトリがダメだよと怒られているみたい。

xcode-select --switch /Applications/Xcode.app

でこのエラー出なくなった。

またまたcordova run iosで以下のエラー

No target specified for emulator. Deploying to iPhone-X, 12.1 simulator
/Users/username/VoiceApp/platforms/ios/build/emulator/HelloCordova.app/Info.plist file not found.

iosのエミュレータを実行しようとするとplistが見つからないと言われる。

cordova run ios --buildFlag='-UseModernBuildSystem=0’

実行する際にパラメータを指定してやるといいいよということで、こちらでエラーは出なくなった。
でも毎回パラメータつけなくちゃいけないのは面倒。

cordova run android のエラー

Error: Requirements check failed for JDK 1.8 or greater

これはjavaが複数入っていたのが原因みたい。

ここを参考にして前のjavaを全部消して再度java8をインストールする
Cordova向けにJDKを再インストール - Qiita


javaを入れ直したらエラーが変わった。

Could not find an installed version of Gradle either in Android Studio,or on your system to install the gradle wrapper. Please include gradle in your path, or install Android Studio

gradleのパスを通してねということ。

 echo 'export PATH="/Applications/Android Studio.app/Contents/gradle/gradle-4.6/bin":$PATH' >> .bashrc

パスを通してあげる。
gradle -vするとパーミッションで怒られたので権限を変える。

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


再度cordova run android でエラーで怒られる。

You have not accepted the license agreements of the following SDK components:
  [Android SDK Platform 27].

ここを参考にSDK Manager の画面からライセンスに同意する。
MacでCordova開発環境を構築した備忘録 - Qiita


再度cordova run android

 PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT

AVDのパスがないよと言われているみたいなので、パスを通してあげる

 echo 'export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk' >> .bashrc

またパニック!と言われる。

PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/Users/username/Library/Android/sdk]!

adndroid sdkの画面からエミュレータをダウンロードしてみたらエラーが変わった。適当にNexxus_5Xで最新のAPIを選択。

f:id:ayapc:20181230195725p:plain

No emulator specified, defaulting to Nexus_5X_API_28
PANIC: Missing emulator engine program for 'x86’ CPU

今度はまた別のx86が見つからないよ、というエラーになる。
結局古いAPIのエミュレータを入れたら正しく起動できた。cordovaが最新のバージョンのAPIには対応していなかったらしい。

環境構築終わり。長かった。