查看: 77|回复: 0

Delphi 10.3.3解决Android 11闪退

[复制链接]

3

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-11-20
发表于 2021-1-15 17:13:00 | 显示全部楼层 |阅读模式

这是盒子上的朋友的解决方案,转贴过来的,感谢分享的朋友,另外,这一问题,Delphi 10.4.1是解决了的。

Android 11 Beta版本,Delphi 10.3.3编辑的App出现闪退。

文件在Delphi10.3.3版本修改而来。替换文件后,修复Android 11启动闪退问题。
替换以下目录文件“System.o”,区分32和64位版本。
如果包含服务,还需要替换“libProxyAndroidService.so”。

C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\android\debug
C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\android\release
C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\android64\debug
C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\android64\release

C:\Program Files (x86)\Embarcadero\Studio\20.0\source\rtl\sys\ICU.inc文件按下面内容修改:

10.3.3
{$ELSEIF defined(ANDROID32)}
  HICUUC := dlopen('/system/lib/libicuuc.so', RTLD_LAZY);
  HICUI18N := dlopen('/system/lib/libicui18n.so', RTLD_LAZY);
{$ELSE defined(ANDROID64)}
  HICUUC := dlopen('/system/lib64/libicuuc.so', RTLD_LAZY);
  HICUI18N := dlopen('/system/lib64/libicui18n.so', RTLD_LAZY);
{$ENDIF}

修改后

{$ELSE defined(ANDROID)}
  HICUUC := dlopen('libicuuc.so', RTLD_LAZY);
  HICUI18N := dlopen('libicui18n.so', RTLD_LAZY);
{$ENDIF}


总结:安卓11访问so文件,不需要路径(/system/lib/),不然出错闪退。

百度下载地址:

链接:https://pan.baidu.com/s/11uyFN9ppno1Ht1GtIFqjPg
提取码:o21m

笔者建议:

其实,如果可能的话,我还是建议升级到Delphi 10.4.1或者即将到来的10.4.2,来解决这个android 11兼容的问题,我现在升级到10.4.1来解决的。

官方QC的解决方法:https://quality.embarcadero.com/browse/RSP-27218



来源:https://www.cnblogs.com/kinglandsoft/p/14283134.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部