久しぶりにCordovaを動かしてみたら動かなかった
おはようございます。7月は奥さんが海外出張で実家に来てから、長男、次男が夏風邪で、月末まで実家生活で、地元の盆踊りに子供達を2回も連れて行けたりした@kjunichiです。
背景
AndroidとiOSに対応する(つもりの)mrubyを組み込んだcordovaのプラグインを昨年作った。
その後、すっかり触らず、 思い出して、cordovaを動かしてみたら、動かなくなっている!
Androidのarmなエミュレーターが起動しない
昨年作成したプラグインはx86のバイナリが含まれておらず、armで動かす必要があった。しかし、 どうもcordovaからは、x86なエミュレーターは呼び出せるが、armなエミュレーターは呼び出せない。
対策
Android Studio経由、もしくは単独AVDマネージャーで予めarmなエミュレーターを事前に動かしておく。
iOSのエミュレーターが動かない
TypeError: Cannot read property 'replace' of undefined
このエラーで動かない。
対策
cd platforms/ios/cordova/node_modules/ sudo npm install ios-sim@latest
今回、ふと思いついて、始めるにあたり、新規のcordovaのプロジェクトを作成しての作業かつ、cordovaも更新したつもりだが、 上記のようにios向けのnode.jsモジュールディレクトリで、ios-simモジュールを最新版に更新することで、エラーが解消した。
まとめ
Android, iOSともエミュレーターで取らぶったが、なんとなく、昨年、プラグイン作っているある程度動かせるようになってからは、 Android,iOSともに、ひたすら実機でトライアンドエラーしていたような気がしてきた。
今回みたいに動かないこともあるものの、cordovaはハイブリッドアプリ開発の中ではメジャーなので、エラーメッセージを頼りに検索すれば、 Stackoverflow等で情報が見つかることが多そうな感じ。
次回の課題
libmruby.aをどうやって作っていたか?
iOS向けはFatバイナリーみたいなことをやった記憶がうっすらある。Androidもx86_64向けも作ってその時のメモをQiitaに投稿はした。
あと、そもそもCordovaのプラグイン自体の開発ってローカルでどうやってたんだ?
cordova plugin add --link ~/path/to/plugin
と見つけたが、記憶がない。
関連記事
- cordovaのプラグインを作ってkindle fireでmrubyを動かしてみた
- iOSでもCordovaプラグインを作ってmrubyを動かした
- 過去7月にブログ記事が無かった日を挙げる
- cordovaでwindowsアプリを作るにはMSBuild ToolではなくVSのIDE環境が必要だった件