1

尝试在新的 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配置:

SDK配置

NDK 配置:

NDK 配置

JAVA OpenJDK 配置:

JAVA OpenJDK 配置

4

1 回答 1

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 时

于 2021-10-12T18:58:39.287 回答