让 Cordova/Phonegap 在 Genymotion 虚拟设备上进行仿真

Posted

技术标签:

【中文标题】让 Cordova/Phonegap 在 Genymotion 虚拟设备上进行仿真【英文标题】:Getting Cordova/Phonegap to emulate on Genymotion virtual device 【发布时间】:2013-12-30 21:28:30 【问题描述】:

使用 Cordova CLI,我设置并构建了一个应用程序:

cordova create hi com.example.hi Hi 
cd hi
cordova platform add android
cordova build android

我运行 Genymotion 并启动一个名为“api9”的设备。我运行 Android Debug Bridge adb devices 它显示为

192.168.8.101:5555

我尝试使用 cordova emulate android 启动应用程序,但我得到:

Error: An error occurred while emulating/deploying the android project. ...spawn ENOENT

但是,启动 Android 虚拟设备管理器并启动模拟设备; cordova emulate android 有效,adb devices 列表;

192.168.8.101:5555
emulator-5554

我应该怎么做才能让 Cordova 通过 Genymotion 设备进行仿真?

【问题讨论】:

【参考方案1】:

当设备列表为空时,本例不涉及,则需要手动连接 adb 到 genymotion 设备。

因此你让它在同一个 JAVA SDK 环境中运行,所以不要使用 Genymotion 中内置的。

然后启动您的设备。屏幕上应该出现一些 genymotion 图标。点击它,你会看到IP。

然后在控制台中使用命令“adb connect 198.123.123.123”(当然使用您自己的 IP)。

之后,您的设备列表将更新。

最后使用“cordova run android”,它会将你的应用安装到虚拟设备上。

同样适用于 ionic 框架:“ionic run android”。 注意:如果没有找到任何设备,它将回退到模拟器...

【讨论】:

'屏幕上应该出现一些 genymotion 图标'你的意思是在虚拟设备屏幕上我没有这样的图标,只是我的正常设备。 如果没有图标可以查看虚拟设备的设置并查找网络 已经运行 cordova run android 和 genymotion 设备 - 然后检查设置进入网络,只看到 wifi、蓝牙等....没有图标,无法理解为什么会出现 tbh 但感谢你的帮助..【参考方案2】:

似乎adb 将 genymotion 虚拟设备视为真实设备而不是模拟设备,请尝试使用 cordova run android 而不是 cordova emulate android

【讨论】:

你成就了我的一天 :) 谁会教这个! 这是合乎逻辑的......事实上,基于 virtualbox 的仿真就像一个真实的设备。 终于有了一种更快速的模拟方式。带有 Nexus 7 的 Android SDK 在 Mac OS X Yosemite、Imac 2008 12Gb RAM 上运行缓慢。 Genymotion 允许测试更多“真实”的畅销设备,并且 Galaxy S3 仿真非常被动(使用他们的库,而不是 Android SDK - 请参阅 Genymotion 设置)。使用截至 2015-02-01 的最新版本的 Genymotion。

以上是关于让 Cordova/Phonegap 在 Genymotion 虚拟设备上进行仿真的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Parse.com 推送通知在 Cordova/Phonegap Android 应用程序中工作?

如何从另一个应用程序将图像共享到我的 Cordova/PhoneGap 应用程序?

Cordova/PhoneGap - 通过应用商店验证

Cordova/Phonegap - 风景

Cordova (PhoneGap) 和 iFrame

如何在 Cordova / Phonegap 的远程 html 文件中包含本地脚本?