这是盒子上的朋友的解决方案,转贴过来的,感谢分享的朋友,另外,这一问题,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来解决的。
|