无法加载exp://出错了

时间:2017-06-20 06:00:54

标签: android react-native expo

我使用Expo XDE创建了一个项目。我检查了这个Can't load expo app: Something went wrong,但我已经启用了#34;绘制其他应用程序"。当我扫描这个二维码时,它可以正常工作https://expo.io/@ajaysaini/first-proj,但是当我在Android设备上从XDE运行它时,它没有。

main.js

import Expo from 'expo';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';

class App extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Text>Updating!</Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

Expo.registerRootComponent(App);

当我在设备上运行它时,它在Android设备上显示以下错误。我尝试多次在XDE中重启,但它并没有帮助我。

enter image description here

Dependency graph loaded.
11:19:21 AM
Starting React Native packager...
11:19:24 AM
Scanning 528 folders for symlinks in D:\Expo\first-proj\first-proj\node_modules (18ms)
11:19:24 AM
Loading dependency graph.
11:19:24 AM
Running packager on port 19001.
11:19:25 AM
11:19:33 AM
Project opened! You can now use the "Share" or "Device" buttons to view your project.
11:19:44 AM
Opening on Android device
11:19:54 AM
Dependency graph loaded.
11:21:41 AM
Opening on Android device
11:23:31 AM
Opening on Android device

错误:

There was an unhandled error: Could not load exp://
Stack Trace:

任何人都可以帮我解决出错的问题吗?

20 个答案:

答案 0 :(得分:12)

您最好打开XDE Client并启用开发模式。然后,点击灰色齿轮以使主机&gt; LAN (局域网 - 这意味着通过WiFi与真实设备共享包)。

Localhost选项也可以正常工作,但根据Expo Debugging docs

  

如果您使用的是LAN,请确保您的设备与开发机器位于同一个wifi网络上。这可能不适用于某些公共网络。除非您在模拟器中,否则localhost将不适用于iOS,并且只有在您的设备通过USB连接到您的计算机时,它才适用于Android。

此外,这是我几个月前写的一个视觉信息性答案,也可能有所帮助:How do I run an app on a real iOS device using Expo?

答案 1 :(得分:4)

我遇到了同样的问题,没有一种解决方案适合我。这里的问题是,Expo显示了您的手机无法连接的错误IP地址。

这就是我的解决方法。我将假设您在Windows上并使用LAN在设备上运行该应用。

  1. 打开cmd,键入ipconfig并找到您的本地IP。它应该是 在IPv4 Address部分下列为Wireless LAN Adapter。它 看起来像192.168.xx.x
  2. 现在打开手机中的任何文本编辑器并输入 exp://192.168.xx.x:19000。将此文本复制到剪贴板。
  3. 打开Expo应用程序。现在,您将看到Open from Clipboard选项 顶端。按下它,您的应用应该会加载。

现在,无论何时要加载应用程序,都可以复制相同的地址并在Expo中打开它。

  

我发现了另一个更简单的解决方法。运行命令   set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.xx.x之前的expo start。这个   将在Expo Dev Tools中设置正确的IP。

希望这会有所帮助。

答案 2 :(得分:3)

可能是您的网络不支持LAN通信。将LAN切换到Local对我有用。 From your MAC you can go to http://localhost:[portnumber]如下图所示。

enter image description here

答案 3 :(得分:2)

我尝试了此处给出的建议,但不适合我的问题。 这对我有用。转到运行 localhost:19002 的浏览器,并将连接更改为隧道。扫描手机生成的新QR码。 希望这会有所帮助!

答案 4 :(得分:2)

有时问题是由于使用了错误的网络适配器优先级。

打开终端并运行

ipconfig

如果您的主LAN适配器未列为第一个适配器,则更改适配器优先级可以解决问题。只需按照以下步骤操作即可:

  1. 转到控制面板>网络和Internet>网络连接

  2. 右键单击您的主局域网

  3. 单击属性> Internet协议版本4

  4. 单击属性>高级

  5. 取消选中“自动指标”

  6. 在“接口指标”中输入10

  7. 单击“确定”

答案 5 :(得分:1)

我建议在运行Yarn之前删除npm : The term 'npm' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + npm install + ~~~ + CategoryInfo : ObjectNotFound: (npm:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException 文件夹

答案 6 :(得分:0)

我想很多人都必须完成以上所有操作,但仍然有出错的地方出错

文档可能已在本地构建时指定,并且您的设备已连接到计算机,则应单击Web调试页面上显示“ QRcode”图像的“本地”部分。

enter image description here

然后,在点击本地后,尝试再次扫描QRcode,您的错误应消失并显示正在加载的javascript资产。

答案 7 :(得分:0)

我使用隧道而不是局域网或本地,它在我扫描代码后工作并开始构建应用程序。 enter image description here

答案 8 :(得分:0)

检查您是在PC上还是在移动设备上运行VPN,请先将其关闭,然后重新启动。对我来说,这可以解决我的问题。

答案 9 :(得分:0)

将我的家庭网络从“公共”更改为“私人”对我来说很有效。 打开您的网络连接->右键单击您的家庭网络连接->属性->将“网络配置文件”从“公用”更改为“专用”

答案 10 :(得分:0)

在“开始”菜单上,单击“运行”,键入 WF.msc ,然后单击“确定”。

在具有高级安全性的Windows防火墙的左窗格中,右键单击“入站规则”,然后在操作窗格中单击“ 新规则”。

在“规则类型”对话框中,选择“ 端口”,然后单击“下一步”。

在“协议和端口”对话框中,选择“ TCP”。选择所有本地端口,然后单击下一步。

在“操作”对话框中,选择“允许连接”,然后单击“下一步”。

在“配置文件”对话框中,选择描述计算机连接的所有配置文件 您要连接到数据库引擎时的环境,然后单击“下一步”。

在“名称”对话框中,键入此规则的名称和描述,然后单击“完成”。

答案 11 :(得分:0)

请确保您的笔记本电脑和android设备连接到同一网络,并且应该能够解决该问题,就像对我一样。

答案 12 :(得分:0)

如果您使用防火墙,请确保将端口19000和19001列入了白名单。

答案 13 :(得分:0)

在我的情况下,这是VPN-断开连接后,成功将我的手机与VPN连接起来!

答案 14 :(得分:0)

我通过更新npm和node ..

解决了我的问题

答案 15 :(得分:0)

假设:通过NPM / Yarn在计算机上安装了Expo(https://expo.io),在Android / iPhone上安装了Expo。 另外,电话与计算机位于同一无线网络中。

我的计算机通过WiFI连接,这对我来说是个问题。 Windows:命令行:$ ipconfig 查找您的计算机的Wifi IP地址。我的是Ip v4:192.168.1.xxx 在电话网络浏览器URL上输入网络浏览器:exp://192.168.1.xxx:19000 然后应该会看到一些文字,这表示电话正在通过网络进行连接(信号良好) 然后在Phone上打开expo,应该可以通过剪贴板看到链接。 单击电话上Expo程序内的剪贴板链接。 然后它将在手机上加载该应用程序。 这对我有用。 P.s首次使用时应遵循有关授予Expo许可等的说明。

答案 16 :(得分:0)

也许这可能有助于简单地解释一下,如果您的手机和计算机位于不同的网络上,则会发生此类错误。

我通过网络共享解决了这个问题,这样,我的两个设备不在同一网络上。

这可能意味着您可以将两个设备都连接到应能工作的同一个WiFi。

答案 17 :(得分:0)

由于某种原因,我与docker发生冲突,我禁用了它,并且它没有问题,我几乎可以确定它是hyper-V

答案 18 :(得分:0)

如果有人遇到类似的问题,我的问题与询问是否允许node.js与网络连接就可以了,

答案 19 :(得分:0)

我通过React Native团队的recomendation解决了同样的问题 - 安装和运行Genymotion软件::

  1. 使用VirtualBox安装Genymotion
  2. 在Genymotion网站注册
  3. 运行Genymotion软件和!!!登录
  4. 关闭项目的npm提示程序并重新启动
  5. npm start(在项目目录的npm promt窗口中)
  6. 关闭并启动Expo应用,扫描条形码
  7. 如果我的应用程序成功运行,则IpV地址是相同的,例如:

    exp://10.0.0.125:19000   and
    ipconfig -> IPv4 Address. . . . . . . . . . . : 10.0.0.125