Delphi Android 添加 FMX.types 声明时服务崩溃

Delphi Android service crash when add FMX.types declaration

我有 Delphi 11 Alexandria,我已经将简单的演示重新创建到 "make an Android Service"

当我在我的 Android phone 上 运行 它工作正常,所以现在我想通过添加一个 TTimer 组件来增加服务的复杂性TDataModule,但是当我添加 TTimer 时,应用程序在启动时崩溃。

然后我再次从 TDataModule 和 运行 中删除 TTimer 组件,但应用程序再次崩溃。

如果我然后从服务中删除 FMX.Types 的声明(它是在我将 TTimer 放在 TDataModule 上时添加的),那么应用程序 运行又好了

为什么无法将 FMX.Types 添加到 Android 服务中?

是否无法在 Android 服务中使用 TTimer

正如@DalijaPrasnikar 在评论中提到的,这是一个已知错误:

RSP-17857: Android service applications crash if FMX.Types unit is included

FMX.Types 单元在服务中不起作用,因为它的初始化试图在运行时访问一个 nil 指针(具体来说,一个名为 DelphiActivity 的全局变量,它是未针对服务设置,仅针对应用设置)。

要在服务中使用计时器,请尝试此解决方法代码:

https://github.com/DelphiWorlds/KastriFree/blob/master/Demos/AndroidLocation/Common/LS.AndroidTimer.pas