我正在使用 Delphi 10 Seattle 试用版开发移动应用程序。我尝试创建仅包含 TEditBox 的新 android 移动应用程序。然后通过将选项设置为“发布”来编译。然后,生成.apk 文件,然后将该文件提供给用户。当用户尝试单击编辑框时,应用程序会引发错误消息“Appname 没有响应”。
用户使用的是Lennova A5000,操作系统是Android 5.0.2。
同样的应用程序正在我的 Moto g2 (5.0.2) 和 Micromax Yureka 中运行。 请提供我是否有任何解决方案。
此外,我已经更新了谷歌应用程序商店中的应用程序。然后,它显示为此设备不兼容的应用程序 (Lennova A5000)。
而且我还更新了所有的 android SDK 包。在那之后,它也提出了同样的问题。
我认为这可能是 Embarcadreo Delphi 或任何丢失的包的问题? 不知道该怎么办。
提前致谢。
最佳答案
最后我从 Embarcadreo 网站上得到了解决方案。请按照上述步骤操作。
1.将FMX.Platform.Android.pas从source/fmx文件夹复制到项目文件夹 并将复制的文件添加到项目中。
- 然后,按照以下步骤进行更改。
过程 TPlatformAndroid.RunOnUIThread(Proc: TThreadProcedure);
procedure TPlatformAndroid.RunOnUIThread(Proc: TThreadProcedure);
begin
//MainActivity.runOnUiThread(TSimpleProcedureRunner.Create(Proc));
CallInUIThread(
procedure()
begin
Proc;
end);
end;
过程 TPlatformAndroid.SynchronizeOnUIThread(Proc: TThreadProcedure);
procedure TPlatformAndroid.SynchronizeOnUIThread(Proc: TThreadProcedure);
var
Runner: TSimpleProcedureRunner;
begin
// CallInUIThread(
// procedure()
// begin
// Runner := TSimpleProcedureRunner.Create(Proc);
// MainActivity.runOnUiThread(Runner);
// Runner.Event.WaitFor;
// end);
CallInUIThreadAndWaitFinishing(
procedure()
begin
Proc;
end);
end;
过程 TPlatformAndroid.SetClipboard(Value: TValue);
procedure TPlatformAndroid.SetClipboard(Value: TValue);
var
Setter: TClipboardSetter;
begin
Setter := TClipboardSetter.Create(Value.ToString);
CallInUIThread(
procedure()
begin
SharedActivity.runOnUiThread(Setter);
end);
Setter.Done.WaitFor(INFINITE);
end;
函数 TPlatformAndroid.GetClipboard: TValue;
function TPlatformAndroid.GetClipboard: TValue;
var
Getter: TClipboardGetter;
begin
Getter := TClipboardGetter.Create;
CallInUIThread(
procedure()
begin
SharedActivity.runOnUiThread(Getter);
end);
Getter.Done.WaitFor(INFINITE);
Result := Getter.Value;
end;
- 然后,重建项目。完成此操作后,一切正常。
关于android - Delphi android 应用程序在 Lennova A5000 移动设备中引发问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34595492/