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

Android应用Firebase Robo测试失败:明文Raw Socket连接问题排查

Firebase Robo测试无法建立明文Raw Socket连接的解决办法

先排查测试实验室的网络限制

  • Firebase测试实验室的设备默认可能限制非标准端口的明文Socket连接,要是你的服务器用的不是80、443这类常规端口,先临时切到80端口试试能不能连上。
  • 确认你的服务器是公网可访问的,内网服务器大概率在测试实验室环境下连不上,换公网地址测试再说。

补全Manifest必要配置

  • 一定要加INTERNET权限,真机可能默认放行,但测试实验室环境权限校验更严:
    <uses-permission android:name="android.permission.INTERNET" />
    
  • 检查network_security_config.xml的配置,Raw Socket虽不受WebView配置完全约束,但给目标服务器加个豁免试试:
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <domain-config cleartextTrafficPermitted="true">
            <domain includeSubdomains="true">你的服务器域名/IP</domain>
        </domain-config>
    </network-security-config>
    
    别忘了在Manifest的application标签里关联这个配置:
    android:networkSecurityConfig="@xml/network_security_config"
    

细化Socket连接的调试日志

  • 在Socket打开前多打些日志,比如服务器地址、端口,还有当前线程信息,确认Robo测试到底有没有走到连接代码这一步。
  • 显式用InetAddress解析服务器地址,避免隐式解析出问题:
    InetAddress serverAddr = InetAddress.getByName("你的服务器地址");
    Socket socket = new Socket(serverAddr, 你的端口);
    
  • 捕获所有异常(包括ConnectException、UnknownHostException这些子类),打印完整的异常栈,测试实验室日志需要明确的错误信息才能定位问题。

调整Robo测试的执行逻辑

  • Robo测试可能在应用刚启动就跑操作,这时候Socket初始化逻辑还没触发。要么给测试加个延迟,要么确保Robo的操作路径能触发连接代码。
  • 换成Firebase Test Lab的自定义测试脚本(比如Espresso),手动触发Socket连接,这样能精准控制流程,更容易排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:18:25