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

Glide加载volleyball.ir图片失败:No address associated with hostname问题排查

解决Glide加载volleyball.ir图片失败的问题

问题描述

使用Glide加载volleyball.ir域名下的图片(示例链接:https://volleyball.ir/wp-content/uploads/2023/11/IMG_0490-01.jpg)时失败,该图片可在浏览器正常显示,其他图片加载正常。

相关代码

val image_url = "https://volleyball.ir/wp-content/uploads/2023/11/IMG_0490-01.jpg"

Glide.with(G.context).load(image_url).into(img)

报错日志

Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored
Load failed for [https://volleyball.ir/wp-content/uploads/2023/11/IMG_0490-01.jpg] with dimensions [525x525]
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
There were 6 root causes:
java.lang.RuntimeException(setDataSourceCallback failed: status = 0x80000000)
java.lang.RuntimeException(setDataSourceCallback failed: status = 0x80000000)
java.lang.RuntimeException(setDataSourceCallback failed: status = 0x80000000)
java.lang.RuntimeException(setDataSource failed: status = 0x80000000)
java.lang.RuntimeException(setDataSource failed: status = 0x80000000)
java.net.UnknownHostException(Unable to resolve host "volleyball.ir": No address associated with hostname)
call GlideException#logRootCauses(String) for more detail
Cause (1 of 4): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{DirectByteBuffer->Object->Drawable}, DATA_DISK_CACHE, https://volleyball.ir/wp-content/uploads/2023/11/IMG_0490-01.jpg
There were 3 root causes:
java.lang.RuntimeException(setDataSourceCallback failed: status = 0x80000000)
java.lang.RuntimeException(setDataSourceCallback failed: status = 0x80000000)
java.lang.RuntimeException(setDataSourceCallback failed: status = 0x80000000)
call GlideException#logRootCauses(String) for more detail

解决方案

从报错日志的UnknownHostException可以看出,核心问题是设备无法解析volleyball.ir域名,结合Glide的配置问题,按以下步骤处理:

1. 确认网络权限

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

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

同时检查应用的系统权限设置,确认未被限制网络访问。

2. 解决DNS解析失败问题

部分网络环境下无法正常解析该域名,可通过Glide自定义OkHttp客户端指定DNS或手动解析IP:

  • 首先添加依赖到build.gradle(版本需与Glide匹配):
    implementation 'com.squareup.okhttp3:okhttp:4.11.0'
    implementation 'com.github.bumptech.glide:okhttp3-integration:4.16.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'
    
  • 创建自定义Glide模块,配置DNS:
    import com.bumptech.glide.annotation.GlideModule
    import com.bumptech.glide.module.AppGlideModule
    import com.bumptech.glide.load.model.GlideUrl
    import com.github.bumptech.glide.integration.okhttp3.OkHttpUrlLoader
    import okhttp3.OkHttpClient
    import okhttp3.Dns
    import java.net.InetAddress
    
    @GlideModule
    class CustomGlideModule : AppGlideModule() {
        override fun registerComponents(context: android.content.Context, glide: com.bumptech.glide.Glide, registry: com.bumptech.glide.Registry) {
            val okHttpClient = OkHttpClient.Builder()
                .dns(Dns { hostname ->
                    if (hostname == "volleyball.ir") {
                        // 先通过浏览器ping volleyball.ir获取真实IP,替换此处
                        listOf(InetAddress.getByName("185.220.101.10"))
                    } else {
                        Dns.SYSTEM.lookup(hostname)
                    }
                })
                .build()
            registry.replace(GlideUrl::class.java, java.io.InputStream::class.java, OkHttpUrlLoader.Factory(okHttpClient))
        }
    }
    

3. 处理Glide模块警告

上述自定义模块已包含@GlideModule注解,配合添加的compiler依赖,可解决Failed to find GeneratedAppGlideModule的警告。

4. 清除Glide缓存

若缓存导致异常,可调用以下代码清除缓存:

Glide.get(G.context).clearDiskCache()
Glide.get(G.context).clearMemory()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 20:37:41