web-dev-qa-db-ja.com

Cordova Androidエミュレーターが動作を停止しました

AndroidのアプリをCordovaを使用して構築しています。Androidエミュレーターは正常に動作していましたが、Rippleエミュレーターをインストールしたため、使用していませんでした。アプリの構築を続けましたが、どこかでエミュレータが破損しました。

次を実行すると:

cordova create test
cordova platform add Android
cordova build
cordova emulate

次のエラーが発生します。

    Error: An error occurred while emulating/deploying the Android project.
    events.js:72
            throw er; // Unhandled 'error' event
          ^
    Error: spawn ENOENT
        at errnoException (child_process.js:980:11)
        at Process.ChildProcess._handle.onexit (child_process.js:771:34)
    ]

Cordova 3.2をインストールし、Android 4.3 APIと4.4を使用しています。Cordovaを再インストールしようとしました

npm uninstall cordova

もう一度再インストールしますが、それでも同じエラーが発生します。また、Android SDKを再インストールしました。run.bat--emulatorを実行したときのログです。

['adb devices'、null、 '接続されたデバイスのリスト\ r\n\r\n'、 ''] exec:Android list avds ['Android list avds'、null、 '利用可能Android仮想デバイス:\ n名前:AVD_for_Nexus_S\nパス:C:\\ Users \\ Evers \\。Android \\ avd \\ AVD_for_Nexus_S.avd\nターゲット:Android 4.4(APIレベル19)\ n ABI:armeabi-v7a\nスキン:480x800\n '、' '] exec:Android list avds [' Android list avds '、null、' Available Android Virtual Devices:\ n Name:AVD_for_Nexus_S\n Path:C:\\ Users \\ Evers \\。Android \\ avd \\ AVD_for_Nexus_S.avd\nターゲット:Android 4.4(APIレベル11))\ n ABI:armeabi-v7a\nスキン:480x800\n '、' ']警告:エミュレーターが指定されていません。デフォルトでAVD_for_Nexus_S待機していますエミュレータ用... exec:adb devices events.js:72 throw er; //未処理の「エラー」イベント

手がかりはありますか?

21
Evers

エミュレータを手動で起動した後、再実行してください。

エミュレータを作成

  1. cmdにAndroidと入力してEnterキーを押すと、GUIが表示されます。
  2. ツールセクションで[AVDの管理]をクリックし、指示に従って新しいAVDを作成します。

エミュレータを開始

  1. emulator.exe -avd *avdname* in cmd(完全に起動するまで数分待ちます)
  2. コルドバを再実行します。それが動作します。
35
Pradyumna Swain

私も同じエラーを受け取りましたが、3つの問題がある可能性があります。

エミュレータは、platforms/Android/binフォルダに生成されたapkファイルを使用します。これが欠落している場合があるので、次のことを確認してください。

  1. cDプラットフォーム/ Android
  2. アリきれい
  3. antデバッグ

欠落している場合、欠落しているapkファイルが作成されます。

2番目の問題は、それをエミュレータに追加することで発生した可能性があり、それを事前に実行する必要があります。

Android Studio? でエミュレータにAPKをインストールする方法==

Androidを使用して仮想マシンを削除および作成するオプションもあります:

http://developer.Android.com/tools/devices/index.html のAVD

これがお役に立てば幸いです。このエラーに関するドキュメントはほとんどありません。

6
Ben O

@Tech Pro

Cordova 3.2にはAndroid KitKatバージョンsdkが必要です。したがって、問題はあなたのAndroid SDKバージョンにあります。この問題には2つの解決策があります。

ソリューション:1

@Eversの提案に従って、Android SDKを最新バージョンに更新するか、Cordovaバージョン3.0にダウングレードします

ソリューション:2:Android SDKをアップグレードしたり、Cordovaのバージョンをダウングレードしたりしたくない場合は、ここでの手順。

  1. CordovaWebView.Javaファイルを見つけます({project}\platforms\Android\CordovaLib\src\org\Apache\cordova)
  2. 行No-296に移動し、次のようにコードを更新します "Android.os.Build.VERSION.SDK_INT> = Android.os.Build.VERSION_CODES.KIT_KAT"。このリンク http://developer.Android.com/reference/Android/os/Build.VERSION_CODES.html から、SDKバージョンに応じてバージョンコードを変更します。例:Android 4.2の場合、KitKatをJELLY_BEANに変更します。
  3. 行No-299をコメント化します。つまり、// setWebContentsDebuggingEnabled(true);
  4. 次に、@ snakeによって指定された手順に従います。つまり、ant cleanとant debugです。 うまくいくことを願っています
2
Pradyumna Swain

Cordovaワークショップチュートリアルで遊んでいて、Androidエミュレータが起動しないという問題が発生しました。上記の回答を確認しましたが、それでもうまくいきませんでした。しました(私はWindows 7を使用しています):

  1. 私はAVD (Android Virtual device)マネージャーを以下から開始しました:

    start->programs->Android SDK Tools->AVDマネージャー。

  2. Nexus_5_API_21_X86に記載されている1つのエントリに「?」プラットフォームと他の列の横。これはなぜだろうと思いました。

  3. Edit」をクリックして、ターゲットプラットフォームとその他の欠落しているフィールドを指定します。

  4. 「開始」をクリックして、AVDを開始します。 1分後、Androidエミュレータ画面の表示も表示されます。

  5. コルドバを再実行します(c:\Cordova\workshop>cordova emulate Android)

  6. 出来上がり!コマンドウィンドウにコンパイルの進行状況が表示され、最後に以下のメッセージが表示されます。数分後、Androidエミュレータでアプリを見つけることができるはずです。

    BUILD SUCCESSFUL
    
    Total time: 1 mins 10.307 secs
    Built the following apk(s):
        C:\Cordova\workshop\platforms\Android\build\outputs\apk\Android-debug.apk
    Installing app on emulator...
    Using apk: C:\Cordova\workshop\platforms\Android\build\outputs\apk\Android-debug.apk
    Launching application...
    LAUNCH SUCCESS
    

お役に立てれば!

1
MaxRelax

@Tech Proこのエラーは、エミュレートコマンドが送信される前に仮想マシンを起動+ロック解除する必要があるという文書化されていない事実が原因である可能性があります。

次のコマンドで、仮想マシンがAndroid仮想デバイスマネージャーによって作成されていることを確認します。

Android AVD

バージョンがアプリの互換性で正しいことを確認してください:)返信が遅くなって申し訳ありません。

1
Ben O

私の問題は、Android sdk managerをシンボリックリンクで実行していたという事実によるものでした(usr/local/bin)。 $Android_HOME/toolsをPATHに追加して、シンボリックリンクを削除しました。

0
Renan

ようやく回避策を見つけました。 Cordova 3.2が私のラップトップで機能するため、なぜ私のシステムでエミュレータを自動的に起動できないのかわかりません。 3.0にダウングレードすると問題が解決するようです。

npm uninstall cordova
npm install -g [email protected]
0
Evers