跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

通讯异常类问题

问题描述:

  • 集成SDK后发现后台无数据,打开SDK调试Log看到如下提示“发生java.net.UnknownHostException异常”。

  • 集成SDK后发现后台无数据,打开SDK调试Log看到如下提示“发生javax.net.sslHandshakeException异常”。

  • 集成SDK后发现后台无数据,打开SDK调试Log看到如下提示“发生java.net.SocketTimeoutException异常”。

解决方案:

  • java.net.UnknownHostException异常

    在非组件化版本6.1.x系列SDK中,此异常发生时能看到如下log打印:

    java.net.UnknownHostException: Unable to resolve host "ulogs.umeng.com": No address associated with hostname
    

    或

    java.net.UnknownHostException: Unable to resolve host "alog.umengcloud.com": No address associated with hostname
    

    此类异常一般可能是如下原因:

    1. 设备端使用静态IP,DNS服务器配置错误或DNS服务器故障,导致设备无法正确解析友盟后端域名。

    2. 接入一些不安全的Wi-Fi路由器时,可能因为DNS污染或非法运营商DNS劫持导致设备无法正确解析友盟后端域名。

    3. 各种负责的网络环境故障导致的一段时间内的DNS服务不可用。

    建议用户改用三大运营商“移动数据”网络接入方式测试(“移动数据” 接入方式网络环境相对简单、固定,意外影响因素较少)。查看后台是否能正常接收数据。如果可以正常接收,则确定和SDK无关,需要客户自己解决其网络接入环境的DNS域名解析失败问题。

  • java.net.sslHandshakeException异常

    此类异常一般可能是如下原因:

    1. 组件化SDK通过HTTPS协议连接后端,在Android 7.0及以上版本系统中,客户如果使用设备端代理抓包程序(如:Packet Capture等)或者PC端代理抓包软件(如:fiddler、charles)试图抓包,在安装三方代理抓包程序的SSL自签名证书后,因为Android 7.0默认不信任客户后安装的CA(仅信任ROM中预装的CA)。SDK的https通讯代码会产生javax.net.sslHandshakeException异常。Android 6.0及以下版本ROM不会出现此问题。

    要解决此问题,需要按照Android官方文档《网络安全性配置》部分,针对用户需要抓包的APP自定义可信CA,将代理抓包程序的CA加入可信CA。具体见如下Android官方说明:https://developer.android.com/training/articles/security-config.html#CustomTrust

  • java.net.SocketTimeoutException异常

    此类异常一般可能是如下原因:

    1. 设备端使用静态IP,DNS服务器配置错误或DNS服务器故障,导致设备无法正确解析友盟后端域名。

    2. 接入一些不安全的Wi-Fi路由器时,可能因为DNS污染或非法运营商DNS劫持导致设备无法正确解析友盟后端域名。

    3. 各种负责的网络环境故障导致的一段时间内的DNS服务不可用。

    建议用户改用三大运营商“移动数据”网络接入方式测试(“移动数据” 接入方式网络环境相对简单、固定,意外影响因素较少)。查看后台是否能正常接收数据。如果可以正常接收,则确定和SDK无关,需要客户自己解决其网络接入环境的DNS域名解析失败问题。