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

Android 11-13出现UnknownHostException无法解析域名求助

背景

我开发的Android应用拥有超过10万活跃用户,部分功能需与后端服务器进行网络交互,该后端使用Cloudflare DNS。

问题

有部分用户在访问后端时遇到UnknownHostException错误。
应用中部分操作会先与Google API通信,之后才出现域名解析错误,因此我确信用户网络连接正常。该错误随机出现,我个人无法复现。
我已查阅以下资料:

  • Does Android DNS need warm up?
  • Android: Flush DNS
  • java.net.UnknownHostException: Unable to resolve host "domain.com": No address associated with hostname
  • How can I flush the DNS cache?

并搜索了相关内容,但多数答案针对Android ≤4.0,而受影响用户使用的是Android 11-13,理论上DNS缓存问题已修复。
我也曾考虑用户仅拥有IPv6地址,但InetAddress.getAllByName应仍能解析后端IP地址。

已尝试方案

作为临时方案,我尝试使用InetAddress.getAllByName手动解析域名,最多重试10次,每次间隔1秒,因部分帖子提到Android首次请求可能解析失败,但此方法无效,用户仍会偶尔遇到相同错误。
我还尝试设置:

System.setProperty("networkaddress.cache.ttl", "5");
System.setProperty("networkaddress.cache.negative.ttl", "0");

不过自Android 5起,此设置可能已对Android无影响。
我不想采用手动解析记录的方案,因为这应由操作系统处理。

求助

是否有人遇到过类似问题并知晓可行的解决方法?如前所述,手动解析虽可选,但在外部DNS流量被拦截的企业网络中可能失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 00:25:22