
android 9.0(api 28)起默认禁止明文流量,导致 glide 无法加载 http 图片;需在 androidmanifest.xml 中显式启用 cleartext traffic 才能正常加载。
在现代 Android 开发中,出于网络安全考虑,系统自 Android 9.0(API 级别 28)起默认禁用明文网络流量(即 HTTP 协议),仅允许 HTTPS 请求。因此,当你使用 Glide 加载形如 http://example.com/image.jpg 的图片时,即使代码无误、网络权限已声明,图片仍会加载失败且无明显报错——这是系统级限制,而非 Glide 本身的问题。
✅ 正确解决方案是在 AndroidManifest.xml 的 application> 标签中添加属性:
android:usesCleartextTraffic="true"
同时确保已声明互联网权限(通常已在 manifest 中存在):
完整示例(关键部分高亮):
⚠️ 注意事项:
- 该配置仅适用于调试或特定业务场景(如内网 HTTP 服务)。生产环境强烈建议升级为 HTTPS,以保障数据传输安全与合规性;
- 若目标 API 级别 ≥ 31(Android 12),还需额外检查是否启用了 android:exported 属性(针对有 intent-filter 的组件),但此与 cleartext 无关;
- Glide 本身无需额外配置(如自定义 OkHttpClient)即可支持 HTTP,前提是系统允许明文流量。
? 补充建议:
若项目支持 Android 7.0+,更健壮的做法是通过 network_security_config.xml 精细化控制(例如仅对特定域名允许 HTTP),而非全局开启 usesCleartextTraffic。但对简单场景,上述配置已足够高效可靠。
总之,HTTP 图片加载失败不是 Glide 的 Bug,而是 Android 安全策略的体现——理解并合理配置 android:usesCleartextTraffic,是解决该问题的关键一步。










