CordovaでAndroidアプリをエミュレートしようとしていますが、次のエラーメッセージが表示されます:
次のapkを作成しました:/Users/jnj/cordova/hello/platforms/Android/build/outputs/apk/Android-debug.apk Android_HOME =/Users/jnj/Library/Android/sdk Java_HOME =/Library/Java /JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
エラー:nullのプロパティ 'semver'を読み取れません
解決策はありますか?
これは、不安定なDeveloper Preview APIバージョンのエミュレーターを使用しているためです。
おそらくAPI 27(Android 8.1)を使用しているデバイスがあります。
AVDを開き、そのデバイスを削除して再実行します。
エミュレータが複数ある場合、エミュレータを起動するときに--target <emulator_name>
を使用すると便利です。
使用可能な名前のリストを取得するには、--list
を指定してemulateコマンドを呼び出します
Mighty Chrisが正しい、それが問題であり、彼はそれを上流で修正しました(ありがとう、Chris!)。しかし、彼の答えに追加するために、cordova-Androidを更新してパッチを含めることができない私のような人にとっては、修正は(cordova-Android v6.4.0の場合)です。
<project_root>/platforms/Android/cordova/lib/emulator.js
avd.target = 'Android ' + level.semver + ' (API level ' + api_level + ')';
を見つけますavd.target = 'Android ' + (level ? level.semver : '') + ' (API level ' + api_level + ')';
に置き換えます関連する patch です。
これはcordova-Androidのlist_imagesメソッドのバグです。リストにないシステム上でAndroidバージョンに遭遇するとクラッシュします: https://github.com/Apache/cordova- Android/pull/422
プロジェクト内のplatforms/Android/cordova/emulator.js
で修正を手動で適用できます
同様の問題があり、端末でadb devices
を実行してデバイスが適切に接続されているかどうかを確認し、デバイスが適切に接続されていないことがわかりました、USBに問題があると思いますケーブルを取り外したため、同じコマンドadb devices
を実行してケーブルを再度接続し、デバイスが接続されていることを示しました。私の問題は解決しました。他の人の助けになることを願っています。
私にとって、Macでは、エミュレータでSDKを実行するには以下が必要でした。
Android Studioを開きます(起動時にプロジェクトが開かない場合はプロジェクトを開きます)
「ツール-> AVD Manager」を選択して、デバイスマネージャーツールを開きます。
関連する画像を右クリック(または必要に応じて最初に作成)
「今すぐコールドブート」を選択し、エミュレータが起動するのを待ちます
ターミナルで、platforms
およびconfig.xml
があるフォルダーにcdします。 cordova
コマンドを実行できる場所
使用可能なデバイスをadb devices
(使用不可と表示されている場合はインストール)でリストして、実行中のデバイスのリストを取得し、EMULATOR IDを取得します。この機会に私にとってはemulator-5554
でした。
コマンドcordova run Android --target "emulator-5554"
を実行し、emulator-5554
を独自の参照に置き換えます。