You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Glide加载http://开头的JPEG图片?当前仅支持PNG与HTTPS JPEG

解决HTTP协议JPG图片无法加载的问题

我之前刚好踩过这个坑,核心原因是Android 9(API 28)及以上版本默认禁用了HTTP明文网络请求——这就是为什么HTTPS的JPG能正常加载,HTTP的却不行,和图片格式(PNG/JPG)、CircleImageView控件本身没啥关系。

下面给你两种可行的解决方案,优先推荐第一种,更规范安全:

方案1:配置网络安全配置(推荐)

这是官方推荐的解决方式,既能允许HTTP请求,又能灵活控制权限范围:

  1. 在你的项目res/xml目录下创建network_security_config.xml文件(如果xml目录不存在就新建一个),写入以下内容:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <!-- 全局允许明文HTTP请求 -->
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

如果不想全局放开,只想允许特定域名的HTTP请求(更安全),可以改成这样:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <!-- 替换成你需要加载HTTP图片的域名,includeSubdomains=true表示包含子域名 -->
        <domain includeSubdomains="true">example.com</domain>
    </domain-config>
</network-security-config>
  1. 打开AndroidManifest.xml,在<application>标签里添加这个配置引用:
<application
    android:name=".MyApplication"
    ...
    android:networkSecurityConfig="@xml/network_security_config">
    ...
</application>

方案2:降低targetSdkVersion(仅临时测试用)

如果只是临时调试需要,可以把app/build.gradle(Module级别)里的targetSdkVersion降到27及以下:

android {
    ...
    defaultConfig {
        ...
        targetSdkVersion 27
        ...
    }
}

不过这个方法不推荐用于正式版本,会降低应用的安全性和系统兼容性。

最后再确认下Glide的代码,你当前的写法没问题,Glide默认支持HTTP和HTTPS请求,不需要额外配置。

内容的提问来源于stack exchange,提问作者johnrao07

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 10:58:10