在安卓上运行模拟器时出现错误

5

我正在尝试在安卓上运行一个PhoneGap应用,当我运行以下命令时:

phonegap run android --emulator --verbose

我遇到了以下错误:

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

如何解决这个问题?有什么想法吗?我尝试通过命令行和Android Studio模拟器两种方式打开它都失败了。


删除 AVD 并重新创建对我有用。 - camden_kid
2个回答

14

我发现,如果在运行命令之前手动启动AVD,则不会出现此错误。同时,我发现运行旧版本的安卓系统可以解决这个问题。我不知道具体原因。操作系统是Windows 10。


谢谢,这对我有用。我使用的是Windows 7,现在终于能够在手动启动AVD时看到我的应用程序在模拟器中运行了。 - Tom Purl
在我的Ubuntu 16.04上也起作用了。 - Mardwan

7
我在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
我通过更改platforms/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未正确设置。

希望对某些人有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接