应用未出现在 Android 模拟器中

App does not appear in Android emulator

我正在 Mac 上使用 WebStorm(PhoneGap/Cordova 应用程序)创建一个 PhoneGap 应用程序。我遇到的问题是该应用程序没有出现在 Android 模拟器中。模拟器出现,但带有单词 "android" 的屏幕没有改变以显示应用程序:

我已按照 Mac 上 Cordova site for Android 设置的说明进行操作:

这是模拟器设置:

我已经尝试根据这个问题的答案和评论激活和停用 "Use Host GPU",但没有用 - Android emulator shows nothing except black screen and adb devices shows "device offline"

当我在配置中选择 "browser" 作为平台时,该应用程序出现并正常运行:

知道我还需要做什么吗?

编辑1:这是运行在详细模式下按照@Dar

建议的日志信息

Running command: /Users/username/Documents/Projects/harkme/platforms/browser/cordova/run --emulator

Static file server running @ http://localhost:8000/index.html

CTRL + C to shut down

ANDROID_HOME=/usr/local/Cellar/android-sdk/24.3.4/

JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home > No emulator specified, defaulting to AVD_for_Galaxy_Nexus_by_Google

Waiting for emulator...

emulator: WARNING: VM heap size set below hardware specified minimum of 128MB

emulator: WARNING: Setting VM heap size to 256MB

Hax is enabled

Hax ram_size 0x40000000

HAX is working and emulator runs in fast virt mode.

console on port 5554, ADB on port 5555

编辑 2:

@Dar 提到的启用 HAXM 可以大大加快模拟器的速度,以至于 "android" 页面在几秒钟后消失以显示桌面,但应用程序未安装。但是,我发现如果我将应用程序从构建文件夹拖到桌面上,该应用程序就会安装。应用程序文件 (android-debug.apk) 位于:

platforms/android/build/outputs/apk

这个过程实际上(意外地)改进了我的工作流程,因为我现在只需构建应用程序并将其拖到模拟器上,而不是执行 PhoneGap/Cordova 运行 进行更改以测试应用程序后来自 WebStorm。

我还将模拟器设置更改为:

编辑 3:

有时在启动模拟器时会出现以下错误

Unknown hax vcpu return 1

如果它继续这样做,目前绕过它的唯一方法是按照此处的建议重新启动 Mac - https://code.google.com/p/android/issues/detail?id=201694

抱歉,这应该是某种评论,但我仍然没有足够的积分来评论。

在不知道模拟器在后台记录什么的情况下,我不能比以下说明更进一步。

如果你愿意,请更新我们。

请尝试在您的终端中执行以下操作。我没有亲自使用过 WebStorm,但是文档说终端可以在 IDE.

中使用

这也假设您正在使用 cordova 进行开发。如果您使用 ionic 或 phonegap,请相应地更改命令。

  1. cordova build emulator --verbose

检查应用程序是否构建成功。

  1. cordova run emulator --verbose

检查模拟器是否成功定义其属性、构建应用程序并将其部署到模拟器。


另一个问题是加载模拟器的时间太长。我可以建议您在 Android SDK Manager 中安装 HAXM。 HAXM 代表英特尔硬件加速执行管理器。就速度而言,它确实会提升您的模拟器性能。


此外,也许您可​​以尝试在 SD 卡大小中输入一些值。 也许 512 MiB 就足够了。


如果一切都失败了,删除模拟器并创建一个新的。使用 cordova run android --target=emulatorname

定位该模拟器

再次提醒,如果您能够向我们提供日志信息,请更新。