Delphi 11 - tcp:64311:无法解析名称:没有与主机名关联的地址退出

Posted

技术标签:

【中文标题】Delphi 11 - tcp:64311:无法解析名称:没有与主机名关联的地址退出【英文标题】:Delphi 11 - tcp:64311: cannot resolve name: No address associated with hostname Exiting 【发布时间】:2021-11-13 04:47:46 【问题描述】:

尝试在新的 delphi 11 中启动以前在 10.4.2 上制作的 android 应用程序,但出现此错误。 一些论坛讨论了关于 adb.exe 是否可以找到设备,它可以,设备已插入并且可以被 IDE 识别。

添加说明:正在测试的应用是默认的“helloworld”应用:空白屏幕,中间有一个标签,上面写着“hello world”。

下面的图片显示了 SDK 30 的配置,但我已经尝试了 SDK 29 和 SDK 28,但没有运气。还尝试了来自 10.3.3 Rio 的 NDK 17.2b、来自 10.4.2 的 NDK 20.1 和这次来自 Alexandria 的 NDK 21.2,但它们都不起作用。

使用较低的 NDK(17.2 和 20.1),应用程序安装、打开但在初始屏幕上冻结,然后 android 将其挂起并出现 TCP 64311 错误。 使用来自 Google 的最新 NDK v21,应用程序在初始屏幕上冻结,在 Android JNI 类中出现方法错误并挂起调试器,然后 android 挂起应用程序。 对于 v21.2 或 v21.3,应用可以正常启动,但会引发 TCP 64311 错误并挂起调试器。 对于 NDK 22,它甚至无法正确配置。 除了来自 NDK_BASE/platforms/android-23 和 NDK v21 的选项之外,所有选项都混合使用 NDK 22,应用程序启动,但引发 TCP 64311 错误以及另一个信号 39 错误。

对我应该怎么做有什么想法吗?

SDK 配置:

NDK 配置:

JAVA OpenJDK 配置:

【问题讨论】:

一个可能的原因是您的手机无法连接到互联网。请务必检查您的 wifi/5G 并确保将 添加到您的 AndroidManifest.xml 我正在尝试通过USB线进行调试,在这种情况下互联网不应该干扰,但无论它是否正确连接到互联网并且仍然出现错误。 另一种选择是您仍在使用旧的 GCM 进行推送通知(我在这里遇到了同样的错误),您需要切换到 firebase 实现:blogs.embarcadero.com/… 这应该会有所帮助,以防万一:docwiki.embarcadero.com/RADStudio/Sydney/en/… 我没有使用任何东西,它是一个“helloworld”应用程序:只有一个标签为“hello world”的空白屏幕。 【参考方案1】:

在德尔福捷克论坛上找到了这个解决方案,它确实有效;-)。 Embarcadero 使用 Delphi 安装一个打补丁的 NDK,所以如果你自己安装一个,你需要使用打补丁的“gdbserver”文件(例如 RAD Studio 11“C:\Users\Public\Documents\Embarcadero\Studio\22.0\ CatalogRepository\AndroidNDK-21-22.0.42600.6491\android-ndk-r21\prebuilt\android-arm\gdbserver"),在这里你可以找到两个文件,原来的 gdbserver 文件重命名为 gdbserver.orig 和一个打补丁的名为 gdbserver。每当您安装并指向“prebuilt\android-arm\gdbserver”文件夹中的 Delphi NDK 时,您都需要复制此文件

【讨论】:

确实可以与原始 NDK 21.3 一起使用,只是将 gdbserver 指向 embarcadero 的 HELLO WORLD 示例,但是对于以前在 10.4.2 中构建的项目要移植到 11,它仍然无法正常工作。但这是进步,感谢您的回复!

以上是关于Delphi 11 - tcp:64311:无法解析名称:没有与主机名关联的地址退出的主要内容,如果未能解决你的问题,请参考以下文章

启用协议 HTTP2 Delphi 11

delphi 在用了SelectDirectory函数操作文件夹以后如何删除被选中的文件夹?

如何使用在设计时获取“无法将 NIL 分配给 TFont”的 TFont 属性修复 Delphi 组件?

delphi SPCOMM的一些用法注意

在 Delphi 中翻译语言

如何获得dos输出。在delphi2009与vista