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

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

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

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

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

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

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

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

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

2 ответа

Решение

Это ошибка 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))

Другой обходной путь - запустить эмулятор из студии Android, а затем запустить команду cordova для запуска приложения. Таким образом, Cordova находит, что эмулятор уже запущен, и избегает состояния гонки. Спасибо!

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

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

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

Я получил ту же ошибку при работе со следующей командой на моем компьютере с 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 чтобы построить и запустить я использовал cordova build android и установил результирующую сборку с помощью adb install myApp.apk на текущий запущенный эмулятор.

Другие вопросы по тегам