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

Glide无法加载网络图片,报HttpException及GeneratedAppGlideModule缺失错误求助

Glide加载网络图片失败:HttpException(status code: -1) 及GeneratedAppGlideModule警告解决

一、处理GeneratedAppGlideModule警告

该警告是Glide 4.x的注解处理器机制要求,虽不直接导致加载失败,但会影响自定义配置生效,解决步骤如下:

  1. 创建自定义AppGlideModule类:
import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.module.AppGlideModule

@GlideModule
class MyAppGlideModule : AppGlideModule()
  1. 修正依赖配置:
    • Kotlin项目使用kapt替代annotationProcessor:
      implementation 'com.github.bumptech.glide:glide:4.14.2'
      kapt 'com.github.bumptech.glide:compiler:4.14.2'
      
    • Java项目保留annotationProcessor即可。
  2. 执行Clean Project + Rebuild Project,触发注解处理器生成对应配置类。

二、解决HttpException(status code: -1)加载失败问题

状态码-1并非标准HTTP状态码,核心原因是Glide无法建立网络连接或获取数据,按优先级排查:

1. Android 9+明文HTTP限制(最可能原因)

目标URL为http://开头,而Android 9(API 28)及以上默认禁止明文HTTP请求,需配置网络安全策略:

  • 在res/xml目录下创建network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">flowrspot.s3.amazonaws.com</domain>
    </domain-config>
</network-security-config>
  • 在AndroidManifest.xml的<application>标签中引用:
android:networkSecurityConfig="@xml/network_security_config"

(测试环境可临时添加android:usesCleartextTraffic="true",正式环境不推荐)

2. 检查网络权限

确保AndroidManifest.xml中已添加网络权限:

<uses-permission android:name="android.permission.INTERNET" />

3. 排除代理/网络环境问题

  • 调试时若使用代理,确认代理配置正确,或关闭代理重试;
  • 用设备浏览器直接访问目标URL,验证网络环境是否能正常获取资源。

4. 替换Glide网络客户端

若默认HttpUrlConnection无法工作,可集成OkHttp作为网络客户端:

  • 添加依赖:
implementation 'com.github.bumptech.glide:okhttp3-integration:4.14.2'
  • 在自定义AppGlideModule中配置:
@GlideModule
class MyAppGlideModule : AppGlideModule() {
    override fun registerComponents(context: Context, glide: Glide, registry: Registry) {
        val okHttpClient = OkHttpClient.Builder()
            .connectTimeout(15, TimeUnit.SECONDS)
            .readTimeout(15, TimeUnit.SECONDS)
            .build()
        registry.replace(GlideUrl::class.java, InputStream::class.java, OkHttpUrlLoader.Factory(okHttpClient))
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:05:23