studio run emulate android cordova ionic-framework android-emulator

run - Error al ejecutar el comando de shell "getprop, dev.bootcomplete" "en el dispositivo: error para Android



ionic cordova run browser (3)

Esta fue una solución para mí en la versión Ionic 3:

  1. Abra el estudio de Android, vaya a AVD Manager
  2. Cree un nuevo dispositivo AVD, haga clic en "Mostrar configuración avanzada"
  3. Seleccione "Arranque en frío". Por defecto, el "arranque rápido" está seleccionado.

Intenta ejecutar el emulador de nuevo.

getprop,dev.bootcomplete error getprop,dev.bootcomplete después de getprop,dev.bootcomplete e implementar el nuevo archivo debug-apk en el emulador de Android a través de Ionic framework.

El emulador se abre en la pantalla de inicio de Android, pero la aplicación no está instalada en el emulador y, por lo tanto, no se abre al iniciar el emulador.

Revisé publicaciones similares sobre este problema y probé los diferentes pasos en adb, eliminando y creando nuevos dispositivos para el emulador y tengo las imágenes x86 y x86_64 instaladas para el nivel de API que estoy probando, en el que está la API 26. No estoy seguro de qué más puedo hacer. No creo que eliminar Android de Córdoba y luego volver a agregarlo solucione el problema. El registro de errores está abajo.

Editar:

Cada publicación que he visto hasta ahora sobre este tema no ha resuelto el problema. Todavía tengo que desinstalar y volver a instalar Android Studio o cualquiera de las herramientas del SDK, pero no creo que lo necesite.

Algo que puede estar causando el problema es que tuve que revertir mi versión de NDK a r16b en lugar del r17b más reciente porque mi aplicación no se estaba construyendo correctamente con Cordova iónico. Se está construyendo correctamente ahora, pero el emulador sigue teniendo este problema y no instalará mi aplicación.

Registro de errores:

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


Este es un bug Cordova-Android porque Google probablemente cambió el mensaje de error al intentar ejecutar la aplicación.

Ya se ha corregido y publicado en cordova-android 7.1.1 o más reciente. Si no puedes actualizar a esas versiones haz:

Creo que funcionaría si aplica this cambio usted mismo a su yourAppName/platforms/android/cordova/lib/emulator.js de yourAppName/platforms/android/cordova/lib/emulator.js

Cambio

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

a

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


Otra solución es iniciar el emulador desde Android studio y luego ejecutar el comando cordova para ejecutar la aplicación. De esta manera, Córdova encuentra que el emulador ya se está ejecutando y evita la condición de carrera. ¡Gracias!