在Android设备上运行时,粘贴在Meteor示例“todos”加载屏幕上

时间:2014-11-13 21:37:16

标签: android google-chrome cordova meteor

版本(S)

当我尝试在Android设备上运行时,Meteor“todos”示例永远停留在加载屏幕上。如下面的屏幕截图所示,显示以下错误消息:

Failed to load resource: net::ERR_ADDRESS_UNREACHABLE http://10.0.2.15:3000/sockjs/info?cb=...

该应用程序也表示连接有问题。 这可能是由于Cordova Meteor 1.0版本中的一个错误吗?或者我错过了一些重要的配置/设置步骤? Meteor todos example stuck on loading screen

设置/配置

系统设置

  • Meteor 1.0
  • Ubuntu 14.04 VM with VirtualBox 4.3.18
  • 启用了开发者模式和USB调试的Motorola Droid Turbo(Android 4.4.4)
  • Chrome 38

在Linux终端

中运行这些命令
  • meteor create --example todos
  • cd todos
  • ifconfig< -------给inet addr:10.0.2.15
  • meteor run android-device -p 10.0.2.15:3000

打开Chrome DevTools

  • 等到“todos”应用程序在我的Android设备上启动(它确实启动但它没有移动到加载屏幕之外)。
  • 然后打开Goog​​le Chrome并在搜索栏中输入“chrome:// inspect”。
  • 点击我通过USB连接的Android设备下列出的“Todos”应用下的“Inspect”链接。

Chrome Inspect USB Devices

2 个答案:

答案 0 :(得分:2)

在imslavko的答案上取代......

移动设备通过USB下载初始模板和其他内容,但之后尝试从服务器加载数据。在您的情况下,移动设备是(或应该)通过路由器提供的Wifi连接到您的LAN。我还假设您的开发PC已连接到该路由器。

现在服务器在VM内部运行,这会使移动设备看到您的服务器出现问题。 VM中的IP(在您的情况下为10.0.2.15)无法从LAN的其余部分直接访问,只能看到主机的IP(可能是192.168.x.x)。

运行命令meteor时

run android-device –p 10.0.2.15:3000

您告诉您的仪表在该IP上启动网络服务器,但您也告诉移动设备在该IP上寻找网络服务器(它无法如上所述)。

那你做什么? 2件事......

  1. 您需要从来宾VM向前移植到您的主机PC。去做这个...
    1. 让您的主机PC IP ...在Windows中运行cmd,然后ipconfig ....保存
    2. 在您的来宾VM上使用ifconfig获取IP(在您的情况下为10.0.2.15)
    3. 在您的来宾虚拟机上,转到顶部的虚拟框菜单,然后转到设备 - >网络 - >网络设置...在该窗口中单击“端口转发”按钮。
    4. 在那里添加规则... HostIP =您的主机IP从步骤1开始,主机端口= 3000,访客IP = IP从步骤2,访客端口= 3000 ....点击确定
    5. 接下来,您需要告诉您的移动设备在与服务器实际运行的IP不同的IP上查找服务器。现在您要将Web服务器IP转发到主机PC,您希望设备查看主机PC的IP
  2. 所以新命令就是......

    meteor run android-device –p 10.0.2.15:3000 --mobile-server 192.168.x.x:3000

答案 1 :(得分:1)

您的应用无法连接到服务器(可能是设备和您的计算机位于不同的网络上,或者您的家庭网络已启用客户端隔离)。

app中的代码显式保存加载屏幕,直到加载初始数据为止。