无法加载exp://出错了

问题描述 投票:7回答:13

我使用Expo XDE创建了一个项目。我检查了这个Can't load expo app: Something went wrong,但我已经启用了“绘制其他应用程序”。当我扫描这个二维码时,它工作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:

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

android react-native expo
13个回答
12
投票

您最好打开XDE Client并启用开发模式。然后,单击灰色齿轮以使主机> 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?


0
投票

我通过更新npm和节点修复了我的问题。


0
投票

我想很多人必须完成以上所有操作并且仍然出现错误

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

enter image description here

然后在单击Local后,尝试再次扫描QR码,您的错误应该消失并显示加载捆绑javascript资产。


0
投票

在我的情况下,它是VPN - 我已经连接成功后连接我的手机与VPN!


0
投票

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


6
投票

我遇到了同样的问题,没有一个解决方案适合我。这里的问题是,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。

希望这可以帮助。


3
投票

可能是您的网络不支持LAN通信。将局域网切换到本地为我工作。 From your MAC you can go to http://localhost:[portnumber]如下图所示。

enter image description here


3
投票

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

打开终端并运行

ipconfig

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

  1. 转到控制面板>网络和Internet>网络连接
  2. 右键单击主LAN
  3. 单击属性> Internet协议版本4
  4. 单击属性>高级
  5. 取消选中“自动指标”
  6. 在“Interface Metric”中输入10
  7. 单击确定

0
投票

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

  1. 使用VirtualBox安装Genymotion
  2. 在Genymotion网站注册
  3. 运行Genymotion软件和!!!登录
  4. 用项目关闭npm提示程序并重新启动它
  5. npm start(在项目目录的npm提示窗口中)
  6. 关闭并启动Expo应用程序,扫描条形码

如果我的应用程序成功运行,则IpV地址是相同的,例如:

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

0
投票

如果有人遇到类似的问题,我的问题必须做的就是允许node.js与网络连接出现,并且它有效。


0
投票

由于某种原因,我正在与docker创建冲突,我禁用它并且它没有问题,我几乎可以肯定它是超V


0
投票

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

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

这意味着你可以将你的设备连接到它应该工作的同一个WiFi。


0
投票

假设:通过NPM / Yarn在计算机上安装Expo(https://expo.io)并在Android / iPhone上安装Expo。此外,手机与计算机在同一个wifi网络上。

我的电脑通过WiFI连接,这对我来说是个问题。 Windows:命令行:$ ipconfig查找计算机的Wifi IP地址。我是Ip v4:192.168.1.xxx在Phones Web浏览器URL上的Web浏览器中键入:exp://192.168.1.xxx:19000然后应该看到一些文本,这意味着手机通过网络连接(好)签名)然后在手机上打开世博会,并应通过剪贴板查看链接。点击电话上世博会节目内的剪贴板链接。然后它应该在您的手机上加载应用程序。这对我有用。 P.s首次使用时,请遵循获得世博会许可等的说明。

© www.soinside.com 2019 - 2024. All rights reserved.