在android上运行模拟器时出错

时间:2016-04-03 19:53:36

标签: android cordova android-emulator

我试图在Android上运行一个phonegap应用程序,当我运行命令时

phonegap run android --emulator --verbose

我收到此错误

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

我如何解决这个问题?我尝试通过命令行和android studio模拟器手动打开它。

2 个答案:

答案 0 :(得分:14)

我发现如果我在发出run命令之前手动启动AVD,那么我就不会收到此错误。另外我发现运行旧版本的android可以解决这个问题。我不确切知道这是怎么发生的。运行窗户10。

答案 1 :(得分:7)

我在带有qomu的fedora 23上使用cordova的Android 6.0 API Level 23设备上收到此错误。

它将运行cordova emulate android并且模拟器会显示,但应用程序无法在模拟器中安装或打开。

我的问题是由于cordova试图通过在adb shell上轮询getprop emu.uuid来等待设备准备就绪。

在adb shell中运行getprop emu.uuid未产生任何结果。查看getprop的输出显示可用属性为dev.bootcomplete

我通过更改以下代码修改了平台/ android / cordova / lib / emulator.js(第215-230行),等待dev.bootcomplete为1而不是轮询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;
                    }   
                })  
            );  
        });
   ...

当您一次运行多个模拟器时,这可能会中断。

看起来问题出在模拟器上。 cordova运行emulator -avd <device-name> -prop emu.uuid=cordova_emulator_<date>emu.uuid未在模拟器中正确设置。

希望这有助于某人。