用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编译默认是不打勾的。