"Cannot connect to the Metro server" 关于 React-Native / Expo 项目的



我目前正在尝试使用React Native和Expo用MapView组件构建一个小东西。

当我在Expo Go中扫描Expo二维码时,谷歌地图完美地显示在我的手机上,但我只是修改了一点点代码,只是修改了地图窗口的尺寸——这可能是造成这种情况的原因,因为我的做法可能是错误的,尽管我对此深表怀疑

以下是我到目前为止的代码(我只使用过App.js文件(:

import { StatusBar } from 'expo-status-bar';
import * as React from 'react';
import { StyleSheet, Text, View, Dimensions } from 'react-native';
import MapView from 'react-native-maps';

export default function App() {
return (
<View style={styles.container}>
<MapView style={styles.map} />
</View>
);
}

const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
map: {
width: Dimensions.get('window').width,
height: Dimensions.get('window' - 10).height,
},
});

在我的终端中显示的错误是:

Cannot connect to the Metro server.

尝试以下方法解决问题:

  • 确保Metro服务器在同一网络上运行且可用
  • 确保您的设备/模拟器已连接到您的计算机,并已启用USB调试-运行"adb设备"以查看连接的设备列表
  • 如果您在连接到同一台机器的物理设备上,请运行"adb reverse tcp:8081 tcp:8081"以转发来自设备的请求
  • 如果您的设备在同一个Wi-Fi网络上,请设置"调试服务器主机&"开发人员设置"中设备的端口到您机器的IP地址和本地开发服务器的端口-例如10.0.0.1:8081

URL:10.1.5.81:19000

这取决于您的设置,这就是为什么消息给了您这么多选项。我的案子是最后一个"相同的wifi网络";我能够通过将控制台中的env-var设置为本地ip:来解决这个问题

set REACT_NAME_PACKER_HOSTNAME=192.168.50.112

然后需要重新启动博览会。

不知道Expo为什么在我的本地开发主机ip上使用这个env-var,也不知道为什么它被设置为其他ip,但它现在可以连接了。

在代码编辑器中运行此命令以删除警告

adb reverse tcp:8081 tcp:8081

最新更新