web-dev-qa-db-fra.com

Échec de l'exécution de la commande shell "getprop, dev.bootcomplete" "sur le périphérique: erreur pour Android

Je reçois le getprop,dev.bootcomplete _ erreur après la construction et le déploiement du nouveau fichier debug-apk sur le = Android émulateur via Ionic).

L'émulateur s'ouvre sur l'écran d'accueil pour Android mais l'application n'est pas installée sur l'émulateur et ne s'ouvre donc pas au démarrage pour l'émulateur.

J'avais jeté un œil à des publications similaires sur ce sujet et essayé différentes étapes dans adb, en supprimant et en créant de nouveaux périphériques pour l'émulateur. Les images x86 et x86_64 étaient installées pour le niveau d'API que je teste, à savoir l'API 26. I Je ne suis pas sûr de ce que je peux faire d'autre. Je ne crois pas que supprimer Android de Cordova, puis de le réintégrer résoudra le problème. Le journal des erreurs se trouve ci-dessous.

Edit:

Chaque message que j'ai vu jusqu'ici sur cette question n'a pas résolu le problème. Il me reste encore à désinstaller et à réinstaller Android Studio ou l'un des outils du SDK, mais je ne pense pas en avoir besoin.

Le problème est peut-être dû au fait que je devais rétablir ma version de NDK en r16b au lieu de la version plus récente en r17b, car mon application ne compilait pas correctement avec ionic cordova. Elle est désormais correctement construite. mais l'émulateur a toujours ce problème et n'installera pas mon application.

Journal des erreurs:

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
25
user9958535

Ceci est un cordova-Android bug parce que Google a probablement modifié le message d'erreur lors de la tentative d'exécution de l'application.

Il a déjà été corrigé et publié dans cordova-Android 7.1.1 ou plus récent. Si vous ne pouvez pas mettre à jour ces versions, faites:

Je pense que cela fonctionnerait si vous postulez this changez-vous en yourAppName/platforms/Android/cordova/lib/emulator.js

Changement

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))

44
jcesarmobile

Une autre solution consiste à démarrer l'émulateur à partir de Android studio, puis d'exécuter la commande cordova pour exécuter l'application. Ainsi, cordova trouve l'émulateur en cours d'exécution et évite ainsi la situation de concurrence critique. Merci!

19
Pranit

C’était une solution pour moi dans Ionic 3 version:

  1. Ouvrir Android studio, accédez au gestionnaire AVD
  2. Créez un nouveau périphérique AVD, cliquez sur "Afficher les paramètres avancés"
  3. Sélectionnez "démarrage à froid". Par défaut, le "démarrage rapide" est sélectionné.

Essayez de relancer l’émulateur.

6
nikola.maksimovic

J'ai eu la même erreur en utilisant la commande suivante sur ma machine Windows 10,

cordova emulate Android --target=N5Oreo

Windows 10 Corodva 7.1.0 Oreo based emulator

le problème a été résolu temporairement avec la réponse de jcesarmobile ( Échec de l'exécution de la commande Shell "getprop, dev.bootcomplete" "sur le périphérique: erreur pour Android ), mais elle a été conservée.

Lorsque j’exécute la commande, l’émulateur est lancé mais l’erreur continue à apparaître. J'ai redémarré la machine et puis cela a fonctionné pendant quelques jours, puis il a recommencé.

J'ai trouvé que adb est un outil puissant. Donc, au lieu de dépendre de cordova emulate Android --target=N5Oreo pour construire et lancer j'ai utilisé cordova build Android et a installé la construction résultante en utilisant adb install myApp.apk à l'émulateur en cours d'exécution.

0
AsitK