触摸按钮和调试器调用form.show时出现错误。
Project AVA.apk引发了异常类EJNIException,消息为'android.view.ViewRootImpl $ CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图。'。
UNIT2:
var
frmSettings: TfrmSettings;
Unit1按钮onClick事件:
procedure TfrmMain.btnSettingsClick(Sender: TObject);
begin
frmSettings:=TfrmSettings.Create(Application);
frmSettings.Show;
end;
答案 0 :(得分:3)
您提供的代码本身不是错误原因。但是,在创建和/或显示表单期间执行的代码可能会。
您似乎正在使用/调用需要在Android UI线程上下文中运行的原生Android API。由于Delphi主线程和Android UI线程是不同的线程,因此触发错误。
为避免使用:
procedure TfrmMain.btnSettingsClick(Sender: TObject);
begin
CallInUiThread(procedure
begin
frmSettings:=TfrmSettings.Create(Application);
frmSettings.Show;
end);
end;