WindowsにApache Cordova(7.0.1)の最新バージョンをインストールしたばかりで、Android SDK、Androidプラットフォームを追加し、 Androidエミュレーターはすべて正常にコンパイルしますが、次に表示されます:
未定義のプロパティ 'replace'を読み取れません
エラーをトレースするための指示または他の何かなし。
Ionic framework forum で、問題を解決する次の答えが見つかりました。
ファイル/platforms/Android/cordova/lib/emulator.jsの202行目まで追跡しました:
var num = target.split( '(APIレベル') 1 。replace( ')'、 '');
正規表現の検索と抽出に置き換えます。
var num = target.match(/\d + /)[0];
今週私と一緒に起こった。 Androidプラットフォームを6.0.0にionicチームがこの問題を解決するまでダウングレードしてください。
コマンド:
cordova platform rm Android
cordova platform add [email protected]
Emulator.js(Adrianの答え)を変更したくない場合は、cordova emulate Android
を実行する前にAndroid仮想デバイスを手動で開始することでこの問題を回避できました。
デバイス情報
コマンド
Windows 10でionicを使用して次のコマンドを実行しましたが、同じ問題がありました。
イオン性コルドバはAndroidをエミュレートします
エラー
ターミナルで次のエラーが報告されました。
BUILD SUCCESSFUL
Total time: 1.775 secs
Built the following apk(s):
C:/ionic/quoteapp/platforms/Android/build/outputs/apk/Android-debug.apk
Android_HOME=C:\Users\Arduino2\AppData\Local\Android\sdk
Java_HOME=C:\Program Files\Java\jdk1.8.0_144
Error: Cannot read property 'replace' of undefined
修正
の置き換え:
var num = target.split('(API level ')1.replace(')', '');
と
var num = target.match(/\d+/)[0]
上記のように機能しました。
ionicプロジェクト内のファイルは、次のディレクトリ内のionic appフォルダーにあります:/platforms/Android/cordova/lib/emulator.js
この修正は思いつきませんでしたが、他の人を助けるためにどんなコマンドとエラーを提供したかっただけです。