Подтвердить что ты не робот

Эмулятор 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. Я попытался переустановить Кордову с помощью

npm uninstall cordova

И снова установите его, но он все равно производит ту же ошибку. Я также переустановил Android SDK. Это журнал, когда я запускаю run.bat -emulator:

['adb devices', null, 'Список подключенных устройств \r\n\r\n', ''] exec: android list avds ['avdes list avds', ноль, 'Доступные виртуальные устройства Android:\n Имя: AVD_for_Nexus_S\n Путь: C: \\ Пользователи \\Evers \\. Android\\avd\\AVD_for_Nexus_S.avd\n Цель: Android 4.4 (API lev el 19)\n ABI: armeabi-v7a\n Кожа: 480x800\n ', ''] exec: android list avds ['avdes list avds', ноль, 'Доступные виртуальные устройства Android:\n Имя: AVD_for_Nexus_S\n Путь: C: \\ Пользователи \\Evers \\. Android\\avd\\AVD_for_Nexus_S.avd\n Цель: Android 4.4 (API lev el 19)\n ABI: armeabi-v7a\n Кожа: 480x800\n ', ''] ВНИМАНИЕ: эмулятор не указан, по умолчанию AVD_for_Nexus_S Ожидание эмулятора... exec: устройства adb events.js: 72       бросать эр;//Необработанное событие 'error'

Любые подсказки?

4b9b3361

Ответ 1

Просто повторите запуск после запуска эмулятора вручную.

Создать эмулятор

  • введите android в cmd и нажмите Enter, появится GUI.
  • В разделе "Инструменты" нажмите "управлять AVD" и следуйте дальнейшим инструкциям по созданию нового AVD.

Запустить эмулятор

  • emulator.exe -avd *avdname* в cmd (подождите несколько минут для полного запуска)
  • теперь re run cordova. он будет работать.

Ответ 2

Я сам получил ту же ошибку, могут быть 3 проблемы:

эмулятор использует файл apk, сгенерированный в папке platform/android/bin. иногда это отсутствует, поэтому убедитесь, что:

  • cd platform/android
  • ant clean
  • ant debug

Будет ли отсутствовать файл apk, если отсутствует.

Вторая проблема, возможно, пришла с добавлением ее в эмулятор, который должен быть запущен до:

Как установить apk на эмулятор в Android Studio?

Существует также возможность удаления и создания виртуальной машины Android с помощью:

AVD на http://developer.android.com/tools/devices/index.html

надеюсь, что это поможет, дайте мне знать. Документация об этой ошибке очень мало.

Ответ 3

@Tech Pro

Кордоба 3.2 нуждается в Android KITKAT версии sdk. Таким образом, проблема заключается в вашей версии Android SDK. Существует два решения этой проблемы.

Решение: 1

Обновите свой Android SDK до последней версии или перейдите на версию 3.0 Кордовы, как показано на @Evers

Решение: 2: Если вы не хотите обновлять версию Android SDK или версию Кордовы с понижением, выполните следующие шаги.

  • Найдите файл CordovaWebView.java({project}\platform\android\CordovaLib\src\org\apache\cordova)
  • Перейдите в Line No-296 и обновите код следующим образом: "android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KIT_KAT". Измените свой код версии в соответствии со своей версией SDK по этой ссылке http://developer.android.com/reference/android/os/Build.VERSION_CODES.html. Пример: если у вас есть Android 4.2, то запустите KITKAT в JELLY_BEAN.
  • Вывод строки № 299, т.е. //setWebContentsDebuggingEnabled (true);
  • Теперь выполните шаги, указанные @snake. то есть ant clean и ant debug. Я надеюсь, что это сработает

Ответ 4

@Tech Pro Эта ошибка может быть вызвана недокументированным фактом, что виртуальная машина должна быть запущена + разблокирована до отправки команды эмулирования.

Убедитесь, что виртуальная машина была создана диспетчером виртуальных устройств Android с помощью следующей команды:

android avd

Убедитесь, что версии верны с совместимостью для вашего приложения:) Извините, что получил последний ответ!

Ответ 5

Я играл с учебным семинаром в Кордове и сталкивался с аналогичной проблемой, когда эмулятор Android не запускался. Я проверил вышеупомянутый ответ, но он все еще не работал у меня. Итак, вот что я сделал (я использую Windows 7):

  • Я запустил менеджер AVD (Android Virtual device):

    start->programs->Android SDK Tools->AVD Менеджер.

  • Я заметил, что для одной записи, указанной для Nexus_5_API_21_X86, была?? " рядом с платформой и другими столбцами. Это заставило меня задаться вопросом, почему.

  • Я нажимаю "Edit" и указываю целевую платформу и другие отсутствующие поля.

  • Нажмите "Пуск", чтобы запустить AVD. Через минуту вы также увидите экран дисплея эмулятора Android.

  • rerun cordova (c:\Cordova\workshop>cordova emulate android)

  • Voila! Окно команды затем отображает ход компиляции, и, наконец, вы должны увидеть сообщения ниже. Через несколько минут вы сможете найти свое приложение на эмуляторе 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
    

Надеюсь, это поможет!

Ответ 6

Наконец-то я нашел работу. Я не знаю, почему Cordova 3.2 не может автоматически запускать эмулятор в моей системе, потому что он работает на моем ноутбуке. Снижение до 3.0, похоже, устраняет проблему:

npm uninstall cordova
npm install -g [email protected]

Ответ 7

Моя проблема была связана с тем, что я управлял менеджером Android sdk через символическую ссылку (у меня это было при usr/local/bin). Он начал работать, когда я положил свой $ANDROID_HOME/tools в свой PATH и удалил символические ссылки.