红鱼儿

kbmMW 5.19 Debug状态编译的Android应用闪退的原因

 

用Debug调试,提示这个信息,跟踪代码,出下面图中的行上:

 

 

 

在android上,上图中的这一行有问题,用Debug编译的app会闪退,检查这个函数,发现这个函数,result返回类型是Integer,而TThread.CurrentThread.tThreadID类型是cardinal,在Debug状态下,编译选择项,如下图是打开的,进而产生异常。

如果关掉这个检查,则app不闪退,正常运行。

为什么上一个版本,即kbmMW 5.18+delphi 10.4.2没有这个问题呢?其实这个问题同样存在,原来,Delphi 10.4.2 用Debug编译时,Range checking是不打勾的,即不做边界检查。等Delphi 11.1,Debug编译应用,这一项默认是打勾的,而Release编译默认是不打勾的。

2022-06-13 作者回复,按此测试通过。

Try to open kbmMWCore.pas, locate kbmMWGetCurrentThreadID and change its return value type to TkbmNativeUInt instead of TkbmNativeInt. Then recompile and check if your application works then.
Please report result back to me.

 

posted on 2022-04-03 01:22  红鱼儿  阅读(350)  评论(0编辑  收藏  举报