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

Delphi 11运行原Delphi 10.4.2开发的Android应用时出现tcp:64311错误的解决咨询

解决Delphi 11 Android调试出现tcp:64311: cannot resolve name错误的方案

我之前在迁移Delphi旧项目到11版本时,碰到过几乎一模一样的Android调试连接问题,结合你做的多版本SDK/NDK测试,给你几个针对性的排查和修复方案:

1. 重置ADB服务并手动配置端口转发

这个错误本质是调试器和设备之间的TCP连接失败,ADB端口转发异常是最常见的原因:

  • 先关闭Delphi IDE,打开命令提示符执行:
    adb kill-server
    adb start-server
    
  • 然后检查当前的ADB转发规则:
    adb forward --list
    
  • 如果没有看到tcp:64311相关的条目,手动添加调试端口映射:
    adb forward tcp:64311 localabstract:android.debug
    
    这条命令是把本地64311端口映射到设备的调试抽象端口,是Delphi调试Android的标准映射规则。

2. 调整Delphi调试器网络配置

Delphi 11的调试器默认设置可能存在兼容性问题,手动调整一下:

  • 打开Delphi的Tools > Options > Debugger > Android Debugger
  • 把Debug connection type从默认的Auto切换为USB(如果用USB连接设备)
  • 确保Host name设置为localhost,不要留空或填写其他地址;如果之前勾选了Use specific port,可以取消勾选让系统自动分配,或者手动指定64311
  • 点击Apply保存设置后,重启IDE再测试。

3. 清理项目与IDE缓存

旧项目的配置缓存和IDE缓存经常会导致奇怪的兼容性问题:

  • 删除项目根目录下的*.dproj.local文件,以及Android文件夹下的bin、obj生成目录,然后重新编译项目
  • 关闭Delphi IDE,找到IDE缓存目录(默认路径是C:\Users\<你的用户名>\AppData\Roaming\Embarcadero\BDS\21.0,Delphi 11对应BDS 21.0),删除其中的Cache文件夹,重启IDE后重新配置SDK/NDK。

4. 检查设备的调试权限与网络安全设置

部分设备的系统限制会拦截调试连接:

  • 确保设备的开发者选项中,USB调试、安装未知应用(对应你当前的IDE安装包)已开启,同时开启停用ADB授权超时(部分品牌设备有这个选项,防止连接超时断开)
  • 如果设备的网络安全策略阻止明文调试连接,可以临时修改项目的AndroidManifest.xml:
    在<application>标签中添加:
    android:networkSecurityConfig="@xml/network_security_config"
    
    然后在项目的res\xml目录下创建network_security_config.xml文件,内容如下:
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config cleartextTrafficPermitted="true">
            <trust-anchors>
                <certificates src="system" />
            </trust-anchors>
        </base-config>
    </network-security-config>
    
    这个配置允许明文调试连接,解决系统对本地调试端口的拦截问题。

5. 匹配官方推荐的SDK/NDK版本

你测试了多个NDK版本,但Delphi 11有明确的推荐版本,不要混用:

  • 官方推荐的NDK版本是NDK r21e(21.3.6528147),可以直接从Google的NDK存档下载这个特定版本,替换当前的NDK
  • SDK方面,建议使用Android 11 (API 30),同时搭配SDK Build Tools 30.0.3,保持版本匹配,不要混用不同API级别的组件。

6. 排除防火墙/杀毒软件的拦截

Windows防火墙或第三方杀毒软件经常会误拦截Delphi调试器的端口连接:

  • 临时关闭Windows防火墙和杀毒软件,测试是否能正常调试
  • 如果问题解决,把Delphi的bds.exe(默认路径C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\bds.exe)和ADB的adb.exe(SDK的platform-tools目录下)添加到防火墙的允许列表中。

按照这些步骤一步步排查,应该能解决tcp:64311: cannot resolve name的调试连接问题。我当时是通过重置ADB端口转发+清理IDE缓存解决的,你可以先从前面的步骤开始测试,不行再往下推进。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:02:31