Android模拟器无法连接Laravel Herd本地API的问题求助
问题原因与解决方案
核心原因
java.net.UnknownHostException本质是Android模拟器无法解析你本地的自定义域名dt_back.test。Laravel Herd通过本地DNS服务让你的电脑识别这个域名,但模拟器默认的网络环境和主机是隔离的,无法直接获取本地DNS的解析记录,和你配置的网络安全规则无关。
解决方案
方案1:直接使用主机IP替代自定义域名
- 找到你电脑的本地IP地址:
- Windows:打开命令提示符,输入
ipconfig,找到「以太网适配器」或「WLAN」下的IPv4地址(比如192.168.1.100) - Mac/Linux:打开终端,输入
ifconfig或ip addr,找到本地网络接口的IP
- Windows:打开命令提示符,输入
- 将API请求地址从
http://dt_back.test替换为http://[你的本地IP],比如http://192.168.1.100
方案2:给模拟器添加hosts映射
- 启动Android模拟器,确保它处于运行状态
- 打开终端/命令提示符,执行以下命令进入模拟器的shell:
adb shell - 获取root权限(部分模拟器可能需要提前开启root模式):
su - 编辑hosts文件,添加IP与域名的映射:
示例:echo "你的本地IP dt_back.test" >> /system/etc/hostsecho "192.168.1.100 dt_back.test" >> /system/etc/hosts - 验证映射是否生效:在模拟器shell中执行
ping dt_back.test,能收到回复即配置成功
方案3:修改模拟器的DNS设置
- 打开Android模拟器的「设置」-「网络和互联网」-「Wi-Fi」
- 长按当前连接的Wi-Fi网络,选择「修改网络」
- 勾选「显示高级选项」,将IP设置改为「静态」
- 在「DNS 1」中填写你电脑的本地IP(比如
192.168.1.100),保存设置 - 重启模拟器后,尝试访问
dt_back.test
额外注意事项
- 确保你的电脑和模拟器处于同一网络环境(比如同一Wi-Fi)
- 检查Laravel Herd的服务是否正常运行,在电脑浏览器中能正常访问
dt_back.test - 你当前的网络安全配置已经允许明文流量,无需调整这部分
内容的提问来源于stack exchange,提问作者Kaan Binen
相关产品推荐
相关产品推荐

