2016-04-03 16 views
5

Sto cercando di eseguire un'applicazione su Android PhoneGap e quando ho eseguito il comando diErrore in esecuzione su Android emulatore

phonegap run android --emulator --verbose

sto ottenendo questo errore

Running command "getprop emu.uuid" on emulator-5554...

come si fa ho risolto questo, qualche idea? Ho provato ad aprirlo sia con la riga di comando che con le emulazioni di Android Studio in entrambi.

+0

Eliminare l'AVD e ricreare ha funzionato per me. –

risposta

14

Ho scoperto che se avvio manualmente l'AVD prima di eseguire il comando di esecuzione, allora non ottengo questo errore. Inoltre ho scoperto che l'esecuzione di una versione precedente di Android risolve questo problema. Non so esattamente come ciò accada. Esecuzione di Windows 10.

+0

Grazie, questo ha funzionato per me. Sono su Windows 7 e finalmente riesco a vedere la mia app nell'emulatore quando avvio per la prima volta manualmente l'AVD. –

+0

Ha funzionato anche per me su Ubuntu 16.04 – Mardwan

7

Stavo ricevendo questo errore su un'API Android 6.0 Livello 23 Dispositivo con cordova su fedora 23 con qemu.

Eseguirebbe il cordova emulate android e l'emulatore mostrerebbe ma l'applicazione non si installerebbe o non si aprirà nell'emulatore.

Il mio problema è stato causato da cordova che cerca di attendere che il dispositivo sia pronto con il polling getprop emu.uuid sulla shell adb.

L'esecuzione di getprop emu.uuid nella shell adb non ha prodotto alcun risultato. Guardando l'output di getprop viene mostrato che una proprietà disponibile è dev.bootcomplete.

ho riparato cambiando il seguente codice nel piattaforme/android/Cordova/lib/emulator.js (circa linee 215-230) per aspettare dev.bootcomplete essere 1 invece di polling emu.uuid:

module.exports.wait_for_emulator = function(uuid) { 
     ... 
     new_started.forEach(function (emulator) { 
      promises.push(
       //Adb.shell(emulator, 'getprop emu.uuid') REMOVE THIS 
       Adb.shell(emulator, 'getprop dev.bootcomplete') 
       .then(function (output) { 
        //if (output.indexOf(uuid) >= 0) { REMOVE THIS 
        if (output == 1) { 
         emulator_id = emulator; 
        } 
       }) 
      ); 
     }); 
    ... 

Questo potrebbe interrompersi quando si eseguono più emulatori contemporaneamente.

Sembra che il problema sia con l'emulatore. cordova corre emulator -avd <device-name> -prop emu.uuid=cordova_emulator_<date> ma emu.uuid non è impostato correttamente nell'emulatore.

Spero che questo aiuti qualcuno.

Problemi correlati