从Genymotion Emulator访问example.com

时间:2015-01-11 16:01:56

标签: android ionic-framework genymotion

我正在开发使用离子的混合应用程序。我使用由vagrant(Virtual Box)运行的Ionic Box。我也使用Genymotion作为模拟器。

在我的应用程序中,我使用Google OAuth2进行身份验证。配置需要一个重定向url回调,它为开发环境设置为http://www.example.com/auth/google/callback。如果我设置了IP地址,则会收到以下错误:Error: invalid_request device_id and device_name are required for private IP

在genymotion浏览器中,我可以使用http://10.0.3.2:8100访问我的应用程序。因此,我希望在输入http://10.0.3.2:8100时能够访问http://www.example.com:8100Access host from Genymotion emulator

如何在Genymotion中创建该映射?

Vagrant Box:

vagrant@ionic-android:/project$ ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:f9:58:8e
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fef9:588e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2459 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3188 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:196630 (196.6 KB)  TX bytes:4896919 (4.8 MB)

Genymotion Emulation正在192.168.56.101上运行。

1 个答案:

答案 0 :(得分:1)

解决方案是在/etc/hosts中添加一个条目。

获取本地系统上的hosts文件

vagrant@ionic-android:/project$ adb pull /system/etc/hosts

在该文件中添加条目

192.168.0.1 www.example.com

重新安装/系统在可读的情况下是可读的

vagrant@ionic-android:/project$ adb shell
root@vbox86p:/ # mount -o rw,remount /system
root@vbox86p:/ # exit

Read only file system on Android

推送修改后的主机文件

vagrant@ionic-android:/project$ adb push hosts /system/etc