请按照以下步骤操作:
Firemonkey Moblie Application
TGeustureManager
组件添加到表单将2 TButton
个组件添加到表单
双击Button2 Component并为OnClick
事件编写以下代码:
procedure TForm1.Button2Click(Sender: TObject);
begin
if MessageDlg('Are you sure you want to Exit?', TMsgDlgType.mtWarning,
[TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0) = mrYes then
SharedActivity.finish;
end;
,单击按钮2,然后单击是以弹出消息。将出现一个例外:
为什么会引发此异常?
我认为它与未使用的TGeustureManager
组件有关。但不是不:
Location
演示项目。TButton
组件添加到Location
标签,如下图所示:
OnClick
事件。这是我应该报告的错误吗?或者我做错了什么?
答案 0 :(得分:1)
在执行流程耗尽之前,您可能正在杀死正在运行的活动,从而导致问题。就像在表单方法中释放表单一样....
如果替换会发生什么:
SharedActivity.finish
使用:
uses
FMX.Helpers.Android;
...
CallOnUIThread(procedure begin SharedActivity.finish end);
[从记忆中输入,因此可能需要一些调整]
答案 1 :(得分:0)
如果您只想关闭应用程序,可以试试这个:
case MessageDlg('Close Application?', System.UITypes.TMsgDlgType.mtInformation,
[
System.UITypes.TMsgDlgBtn.mbYes,
System.UITypes.TMsgDlgBtn.mbNo
], 0) of
{ Detect which button was pushed and show a different message }
mrNo:
showmessage('');
mrYes:
halt;
end;
答案 2 :(得分:0)
我已就此问题联系了Embarcadero。
他们说这是因为TApplication.Terminate尚未在FireMonkey移动平台中实现。
他们打开一张实施TApplication的门票。在nex hotfix中终止。
让我们希望不会花费很长时间。
答案 3 :(得分:0)
我在一个非常简单的位置测试应用程序上遇到了同样的错误,它在标签上设置文本时会发生。标签设置为自动尺寸,当我将其更改为静态尺寸时,错误就消失了。
Delphi XE6,FMX.TextLayout.GPU中的第681行
我正在使用三星S4手机。
procedure TForm_StayTogether.LocationSensor1LocationChanged(Sender: TObject;
const OldLocation, NewLocation: TLocationCoord2D);
begin
DistLabel.Text:= FloatToStr(LocationSensor1.Distance);
AccLabel.Text:= FloatToStr(LocationSensor1.Accuracy);
LatLabel.Text:= FloatToStr(NewLocation.Latitude);
LonLabel.Text:= FloatToStr(NewLocation.Longitude);
end;
答案 4 :(得分:-4)
我刚刚经历过类似的事情,一个非常小的应用程序,每次我退出Android设备上的应用程序(我的情况下为Galaxy Note 2)时,只有很少的代码会给出同样的错误(Segmentation fault 11)。
为了它的价值,当我找到我之前在表格上填写的样式簿并清除它时,问题就消失了。我想我之前已经从另一个测试单元复制了这个Stylebook。
麦克