安卓模拟器无法连接本地Django服务器问题求助(React Native+Expo环境)
解决安卓模拟器无法连接Mac上Django服务器的问题
这个问题我之前帮不少开发者踩过坑,核心原因是安卓模拟器里的127.0.0.1指向的是模拟器自身,而不是你的Mac本地服务器,所以直接用这个地址肯定连不上。咱们一步步来修正:
1. 替换127.0.0.1为正确的地址
你有两个可选的地址:
- Mac的局域网IP:这是最通用的方案,不管用哪种安卓模拟器都能生效。在Mac终端里执行以下命令获取:
得到类似ipconfig getifaddr en0 # 无线连接时用这个 # 或者有线连接用 ipconfig getifaddr en1192.168.1.100的地址,把fetch里的URL改成http://192.168.1.100:8000/api/events/?featured=true。 - 模拟器专属地址(仅Android Studio模拟器):如果用的是Android Studio自带的模拟器,可以直接用
10.0.2.2,这个地址是模拟器专门用来访问宿主机器(你的Mac)的特殊回环地址,URL改成http://10.0.2.2:8000/api/events/?featured=true。
2. 配置Django允许外部访问
默认情况下Django只允许本地请求,需要修改两个地方:
- 修改
settings.py里的ALLOWED_HOSTS,把你的Mac IP或者0.0.0.0加进去:ALLOWED_HOSTS = ['192.168.1.100', '127.0.0.1', 'localhost'] - 启动Django服务器时,绑定到所有网络接口,而不是仅本地回环:
python manage.py runserver 0.0.0.0:8000
3. 检查防火墙设置
确保Mac的防火墙没有拦截8000端口的入站请求:
- 打开「系统偏好设置」→「安全性与隐私」→「防火墙」→「防火墙选项」,确认允许
python或者manage.py的入站连接,或者直接临时关闭防火墙测试(测试后记得打开)。
做完这几步,安卓模拟器应该就能正常连接到你的Django服务器了。
内容的提问来源于stack exchange,提问作者user16372363




