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

使用RetroFit的天气组件在三星S24 Ultra出现域名解析失败求助

解决三星S24 Ultra上RetroFit无法解析主机名的问题

针对你遇到的Unable to resolve host <URL>: No address associated with hostname问题,结合三星S24 Ultra的Android 14特性,给出以下针对性排查方案:

1. 补全网络权限配置

确认AndroidManifest.xml中同时包含以下权限,部分Android 14设备需要ACCESS_NETWORK_STATE权限才能正常检测网络状态:

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

同时检查系统权限设置:进入「设置-应用-你的天气组件-权限」,确保「网络」权限已授予。

2. 关闭三星专属网络限制功能

三星S24 Ultra的内置优化可能拦截应用网络请求:

  • 进入「设置-连接-更多连接设置-流量节省」,关闭流量节省;
  • 进入「设置-电池和设备维护-电池-后台限制」,将你的应用设置为「无限制」;
  • 进入「设置-连接-WiFi-高级设置」,关闭「智能网络切换」功能。

3. 确认私有DNS生效状态

手动修改DNS后可能未在系统层面生效:

  • 进入「设置-连接-更多连接设置-私有DNS」,选择「手动输入」并指定1.1.1.1或8.8.8.8,保存后重启应用;
  • 通过adb命令验证当前DNS:
    adb shell getprop net.dns1
    
    若输出不是你设置的地址,排查是否有VPN、安全软件或企业管理策略拦截了DNS配置。

4. 检查移动数据APN配置

如果移动数据下问题持续,修复APN设置:

  • 进入「设置-连接-移动网络-接入点名称」,选中当前APN,在「DNS服务器」字段填入1.1.1.1,8.8.8.8;
  • 点击右上角菜单,选择「重置为默认设置」,再重新配置DNS。

5. 调试RetroFit请求细节

添加日志拦截器排查请求问题:

  • 给OkHttpClient添加日志拦截器,输出完整请求信息:
    val loggingInterceptor = HttpLoggingInterceptor().apply {
        level = HttpLoggingInterceptor.Level.BODY
    }
    val okHttpClient = OkHttpClient.Builder()
        .addInterceptor(loggingInterceptor)
        .build()
    
    查看Logcat中的请求URL,确认主机名无拼写错误,同时检查是否存在代理、重定向等干扰因素。

6. 系统级网络连通性测试

排除应用自身问题:

  • 打开终端模拟器(或通过adb shell)执行:
    ping <你的API主机名>
    
    如果ping失败,说明是机型系统层面的网络解析bug,可联系三星官方反馈;如果ping成功,重点检查RetroFit客户端的代理、SSL配置是否有误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:35:08