繁体   English   中英

配备Delphi XE8的Android 6棉花糖

[英]Android 6 Marshmallow with Delphi XE8

是否可以使用Delphi XE8而不是Delphi 10为Android 6创建应用程序?

现在,应用程序似乎在Android 6上崩溃,但Delphi 10应用程序似乎在较旧的Android版本上崩溃。

我安装了从19(Android 4.4)到23(6.0)的多个Android SDK,我也有最新的android NDK(r10e)和最新的Java JDK。

崩溃似乎是非常随机的。 还不能说为什么会完全崩溃。 我会尝试找出更多!

更新:

这似乎是设备特定的问题。 如果我在具有Android 4.2 / 6.0的模拟器上运行Delphi 10应用程序,则该应用程序不会崩溃。 另外在我的android 4.2三星银河标签上,它不会崩溃。 只有我的Sony xperia和android 5.1崩溃了。

更新:我的应用似乎崩溃了,因为我在第二个表单的FormClose事件中调用了TCloseAction.caFree

我用我的项目的Delphi 10版本发现了旧版android的问题所在。

通过注释掉代码,我发现TCloseAction.caFree在formclose事件中使应用程序崩溃。 我无法删除它,否则表单内存不会被释放。 我尝试了多种方法,但是只有这样才能完全释放Firemonkey多设备项目中表单的所有内存。

找到这一点后,我发现将TVertScrollBox添加到TTabItem时会崩溃。 在我的表格上,我有多个标签。 在其中之一上,我有一个列表框,我在运行时用项目填充内容,并在其下方添加备忘录。 为了正确使用此备忘录,我添加了TVertScrollBox,以便在显示键盘时键盘不会隐藏该备忘录。 当我在设计器中添加VertScrollBox时,我的列表框无法正确绘制项目,因此这就是我在运行时添加它的原因。 但这会导致较旧的android版本崩溃。 显然,由于某种原因,它不希望在onClose事件中被释放。

因此,对于最终解决方案,我将备忘录放在TTabItem的顶部,这样就永远不会将其隐藏在键盘后面,并从设计器/运行时中删除TVertscrollbox。 现在,我的ListBoxItems可以正确绘制,并且我的应用程序不再在较旧的android版本上崩溃。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM