Не удалось выполнить команду оболочки "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:
- Откройте Android-студию, перейдите в AVD Manager
- Создайте новое устройство AVD, нажмите "показать дополнительные настройки"
- Выберите "Холодная загрузка". По умолчанию выбран вариант "Быстрая загрузка".
Попробуйте снова запустить эмулятор.
Ответ 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
для работающего в данный момент эмулятора.