Flutter中通过Uri加载网络图片出现‘Failed host lookup’错误的原因?
解答:Android模拟器加载网络图片出现SocketException的原因
问题重现
使用Flutter代码加载网络图片:
Image.network('https://images.unsplash.com/photo-1547721064-da6cfb341d50', height=350)
抛出错误:
The following SocketException was thrown resolving an image codec: Failed host lookup: 'images.unsplash.com' (OS Error: No address associated with hostname, errno = 7)
核心原因
- Android网络权限未配置:Flutter的Android端应用默认没有网络访问权限,必须在
android/app/src/main/AndroidManifest.xml中添加<uses-permission android:name="android.permission.INTERNET"/>,否则无法发起网络请求。 - 模拟器网络连接问题:
- 模拟器网络模块未初始化完成,重启模拟器即可尝试恢复。
- 模拟器未连接到宿主机的可用网络,检查宿主机网络状态,或在模拟器设置中重置网络连接。
- DNS解析失败:
- 本地DNS服务器无法解析
images.unsplash.com域名,可手动将模拟器DNS改为公共DNS(如8.8.8.8)。 - 网络环境存在防火墙、代理拦截,导致域名解析请求被阻断。
- 本地DNS服务器无法解析
内容的提问来源于stack exchange,提问作者aka
相关产品推荐
相关产品推荐

