【问题标题】:Delphi Android service crash when add FMX.types declaration添加 FMX.types 声明时 Delphi Android 服务崩溃
【发布时间】:2021-12-11 11:51:04
【问题描述】:

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

当我在我的 Android 手机上运行它时它运行良好,所以现在我想通过向 TDataModule 添加一个 TTimer 组件来增加服务的复杂性,但是当我添加 TTimer 然后是应用程序启动时崩溃。

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

如果我随后从服务中删除FMX.Types 的声明(它是在我将TTimer 放在TDataModule 上时添加的),那么应用程序将再次正常运行。

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

不能在Android服务中使用TTimer吗?

【问题讨论】:

  • 这是已知问题 quality.embarcadero.com/browse/RSP-17857 添加 FMX.Types
  • 链接失效
  • 不适合我...只是再次尝试...也许您在登录时遇到问题?
  • 链接也适用于我。几个星期以来,我一直在为服务苦苦挣扎,现在我终于明白了为什么我在苦苦挣扎。 2017 年的一个错误在 4 年后仍未修复......
  • 我可以访问票证。仍然是一个未解决的问题。

标签: delphi firemonkey


【解决方案1】:

正如@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

【讨论】:

    猜你喜欢
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 2012-07-27
    相关资源
    最近更新 更多