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

Android应用出现UnknownHostException,iOS及安卓Chrome可正常访问同一URL

排查Android应用UnknownHostException问题(同设备Chrome/iOS可正常访问)

常见原因与解决步骤

  • 检查网络权限配置
    确认AndroidManifest.xml中是否添加了必要的网络权限:

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

    针对Android 9及以上版本,若目标URL为HTTP协议,需在<application>标签内添加android:usesCleartextTraffic="true",或通过网络安全配置文件放行明文流量。

  • 验证DNS解析异常
    应用可能存在DNS解析失败的情况,可在代码中手动测试域名解析:

    try {
        InetAddress address = InetAddress.getByName("目标域名");
        Log.d("DNS_CHECK", "解析结果: " + address.getHostAddress());
    } catch (UnknownHostException e) {
        e.printStackTrace();
    }
    

    对比Chrome的解析结果,若不一致,排查是否有VPN/代理干扰,或尝试强制应用使用系统默认DNS。

  • 检查应用代理设置
    部分应用可能被配置了异常代理,而Chrome使用系统代理或无代理。可通过代码检查当前代理状态:

    Proxy proxy = Proxy.getDefault();
    Log.d("PROXY_CHECK", "当前代理: " + proxy.toString());
    

    若存在异常代理,可通过代码强制关闭,或引导用户检查系统代理设置。

  • 排查网络安全策略限制
    Android 7.0及以上的网络安全配置文件(res/xml/network_security_config.xml)可能限制了目标域名访问。检查配置中是否允许该域名,或是否存在HTTPS证书信任问题。

  • 测试不同网络环境
    切换Wi-Fi和移动数据网络,确认是否仅在特定网络下出现问题。部分路由器可能存在DNS劫持或域名过滤,浏览器可能通过DNS-over-HTTPS绕过限制,但应用未开启该功能。

  • 检查第三方网络库配置
    若使用OkHttp、Retrofit等网络库,确认是否有自定义DNS或拦截器干扰解析。例如OkHttp可暂时切换为系统默认DNS测试:

    OkHttpClient client = new OkHttpClient.Builder()
        .dns(Dns.SYSTEM)
        .build();
    

内容的提问来源于stack exchange,提问作者Sǻqĭb Sûfĭǻn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:54:22