让Cordova/Phonegap在Genymotion虚拟设备上模拟的方法

39

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

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

我运行Genymotion并启动一个名为 "api9" 的设备。我运行Android Debug Bridgeadb 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设备进行仿真?

2个回答

97

看起来adb将Genymotion虚拟设备视为真实设备而非模拟设备,尝试使用cordova run android而不是cordova emulate android


1
你让我的一天变得美好 :) 谁会想到呢! - numediaweb
1
这很合乎逻辑...实际上,基于VirtualBox的仿真表现得就像真实设备一样。 - netalex
最后有了一种更快的模拟方式。在Mac OS X Yosemite上,使用Nexus 7的Android SDK非常缓慢,即使是iMac 2008 12GB RAM也是如此。Genymotion允许测试更多“真实”的畅销设备,Galaxy S3仿真非常灵敏(使用他们的库,而不是Android SDK-请参见Genymotion设置)。使用截至2015-02-01的最新版本的Genymotion。 - Christian Bonato

2
当设备列表为空时,需要手动连接adb到genymotion设备。因此,您需要在相同的JAVA SDK环境中运行它,不要使用Genymotion内置的环境。然后启动您的设备,在屏幕上应该出现一些genymotion图标。点击它,您将看到IP地址。然后在控制台中使用命令“adb connect 198.123.123.123”(当然使用您自己的IP)。之后,您的设备列表将被更新。最后使用“cordova run android”,它将安装您的应用程序到虚拟设备中。对于ionic框架也适用:“ionic run android”。注意:如果没有找到任何设备,则会回退到模拟器...

屏幕上应该出现一些Genymotion图标。你的意思是虚拟设备屏幕上吗?我没有这样的图标,只有看起来正常的设备。 - landed
如果没有图标,您可以查看虚拟设备的设置并查找网络。 - Harald Doderer
已经运行了 cordova run android 和 genymotion 设备,然后检查了设置,进入网络,只看到了 WiFi、蓝牙等...没有图标,不太明白为什么会这样,但还是感谢您的帮助。 - landed

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