Не удалось выполнить команду оболочки "getprop, dev.bootcomplete" на устройстве: ошибка для Android

Я получаю getprop,dev.bootcomplete после создания и развертывания нового файла debug-apk в эмуляторе Android через Ionic framework.

Эмулятор открывается на главный экран для Android, но приложение не установлено на эмуляторе и, таким образом, не открывается при запуске для эмулятора.

Я просмотрел похожие сообщения по этой проблеме и пробовал различные шаги в adb, удаляя и создавая новые устройства для эмулятора, и у меня есть как x86, так и x86_64 изображения, установленные для уровня API, на котором я тестирую, в котором есть API 26. я я не уверен, что еще я могу сделать. Я не верю, что удаление андроида из кордовы, а затем добавление его обратно, решит проблему. Журнал ошибок приведен ниже.

Редактировать:

Каждое сообщение, которое я видел до сих пор по этому вопросу, не решило проблему. Мне еще предстоит удалить и переустановить Android Studio или любой из инструментов SDK, но я не думаю, что мне нужно.

Что-то, что может быть причиной этой проблемы, заключается в том, что мне пришлось вернуть версию NDK обратно на r16b вместо более позднего r17b, потому что мое приложение не создавало корректно с ионной кордовой. Теперь он правильно строит, но эмулятор все еще имеет эту проблему и не устанавливает мое приложение.

Журнал ошибок:

emulator: Requested console port 5584: Inferring adb port 5585.
HAX is working and emulator runs in fast virt mode.
(node:11468) UnhandledPromiseRejectionWarning: CordovaError: Failed to execute shell command "getprop,dev.bootcomplete"" on device: Error: C:\Users\noaht\AppData\Local\Android\sdk\platform-tools\adb.exe: Command failed with exit code 1 Error output:
error: device still connecting
    at C:\Noah\Noah School\SSAapp\SMAPP\platforms\android\cordova\lib\Adb.js:88:25
    at _rejected (C:\Noah\Noah School\SSAapp\SMAPP\platforms\android\cordova\node_modules\q\q.js:864:24)
    at C:\Noah\Noah School\SSAapp\SMAPP\platforms\android\cordova\node_modules\q\q.js:890:30
    at Promise.when (C:\Noah\Noah School\SSAapp\SMAPP\platforms\android\cordova\node_modules\q\q.js:1142:31)
    at Promise.promise.promiseDispatch (C:\Noah\Noah School\SSAapp\SMAPP\platforms\android\cordova\node_modules\q\q.js:808:41)
    at C:\Noah\Noah School\SSAapp\SMAPP\platforms\android\cordova\node_modules\q\q.js:624:44
    at runSingle (C:\Noah\Noah School\SSAapp\SMAPP\platforms\android\cordova\node_modules\q\q.js:137:13)
    at flush (C:\Noah\Noah School\SSAapp\SMAPP\platforms\android\cordova\node_modules\q\q.js:125:13)
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
    at process._tickCallback (internal/process/next_tick.js:180:9)
(node:11468) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:11468) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
emulator: S
aving state on exit with session uptime 4695 ms

Ответ 1

Это ошибка Cordova-Android, потому что Google, вероятно, изменил сообщение об ошибке при попытке запустить приложение.

Это уже исправлено и выпущено в Cordova-Android 7.1.1 или новее. Если вы не можете выполнить обновление до этих версий, сделайте:

Я думаю, что это будет работать, если вы примените это изменение самостоятельно к yourAppName/platforms/android/cordova/lib/emulator.js

+ Изменить

if ((error && error.message && (error.message.indexOf('not found') > -1)) || (error.message.indexOf('device offline') > -1))

в

if ((error && error.message && (error.message.indexOf('not found') > -1)) || (error.message.indexOf('device offline') > -1) || (error.message.indexOf('device still connecting') > -1))

Ответ 2

Другим обходным решением является запуск эмулятора из студии Android, а затем запуск команды cordova для запуска приложения. Таким образом, кордова обнаруживает, что эмулятор уже запущен, и он избегает состояния гонки. Благодарю!

Ответ 3

Это было решение для меня в версии Ionic 3:

  1. Откройте Android-студию, перейдите в AVD Manager
  2. Создайте новое устройство AVD, нажмите "показать дополнительные настройки"
  3. Выберите "Холодная загрузка". По умолчанию выбран вариант "Быстрая загрузка".

Попробуйте снова запустить эмулятор.

Ответ 4

Я получил ту же ошибку при работе со следующей командой на моем компьютере с Windows 10,

cordova emulate android --target=N5Oreo

Windows 10 Corodva 7.1.0 Oreo based emulator

проблема была временно исправлена с помощью ответа jcesarmobile (не удалось выполнить команду оболочки "getprop, dev.bootcomplete" "на устройстве: ошибка для Android), но она продолжала обновляться.

Когда я выполняю команду, эмулятор запускается, но ошибка продолжает появляться снова и снова. Я перезапустил машину, и затем она работала в течение нескольких дней, затем снова включилась.

Я обнаружил, что adb является мощным инструментом. Поэтому вместо зависимости от cordova emulate android --target=N5Oreo я использовал adb install myApp.apk для работающего в данный момент эмулятора.