Glide加载HTTP图片失败,HTTPS图片正常问题求助
Glide加载HTTP图片无法显示的解决方案
问题原因
Android 9.0(API级别28)及以上版本默认启用网络安全配置,禁止应用发起未加密的HTTP请求,仅允许HTTPS协议,这就是Glide能加载HTTPS图片却无法加载HTTP图片的核心原因。
解决方法
方法1:全局允许HTTP明文请求
在res/xml目录下创建network_security_config.xml文件,写入以下内容:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true" /> </network-security-config>
接着在AndroidManifest.xml的<application>标签中添加配置引用:
<application ... android:networkSecurityConfig="@xml/network_security_config"> ... </application>
方法2:仅允许特定域名的HTTP请求
如果不想全局放开HTTP权限,可以针对图片所在域名单独配置,修改network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">你的HTTP图片域名</domain> </domain-config> </network-security-config>
方法3:降低目标SDK版本(不推荐)
将build.gradle中的targetSdkVersion设置为27或更低,系统会取消HTTP请求限制,但这种方式会降低应用的兼容性与安全性,不建议采用。
验证修改
完成配置后,重新运行应用,使用原有代码加载HTTP图片:
Glide.with(context).load("http://imageurl").into(holder.foto);
此时图片应该能正常显示。
内容的提问来源于stack exchange,提问作者Andika
相关产品推荐
相关产品推荐

