|
|
导航: |
论坛 -> 移动应用开发
斑竹:flyers,iamdream |
|
作者: |
|
2020/9/2 23:30:40 |
标题: |
Android 11 Beta版本,Delphi 10.3.3编辑的App出现闪退。 |
浏览:6261 |
|
加入我的收藏 |
楼主: |
经过测试,在最新的Android 11 Beta版本中,Delphi 10.3.3(包括)和旧版本,编辑的apk出现闪退,新建一个空白应用,都会出现闪退,导致之前旧版本编辑的App无法在最新的安卓11运行。经过测试 10.4 在安卓11可以正常运行,有一些旧应用不适合在10.4版本编辑,所以请问有没有朋友遇到此问题,探讨解决办法。
----------------------------------------------
- |
作者: |
|
2020/9/3 11:44:10 |
1楼: |
估计就是Delphi10.4才开始支持Android 64bit。 Android11以后谷歌不允许 Android32位的APP再运行了。 大多数Java、Coltlin开发的因为是基于Java虚拟机的,没有32,64的区别,只要Android的JVM换了就可以了。而原生的估计就有这样的问题。
----------------------------------------------
武稀松http://www.raysoftware.cn
|
作者: |
|
2020/9/11 0:54:44 |
2楼: |
找了一周,终于找到解决办法,原因应该是Android 11对目录(/system/lib/.so)访问有限制,将目录修改,Delphi10.3.3版本编辑的apk就可以在安卓11正常运行了,文件不知道怎么上传,如果有需要的朋友,可以留言,我发给你。
----------------------------------------------
-
|
作者: |
|
2020/9/11 10:29:42 |
3楼: |
文件在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
文件修改内容如下:
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/),不然出错闪退。
----------------------------------------------
-
|
作者: |
|
2020/9/11 10:55:37 |
4楼: |
好经验,让大家少走弯路
----------------------------------------------
-
|
作者: |
|
2020/9/11 11:11:44 |
5楼: |
顶楼主,有问有答。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
2020/9/11 20:54:05 |
6楼: |
mark安卓经验
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
|
作者: |
aikei (dlkei) |
▲▲△△△ |
-
|
普通会员 |
|
2020/10/4 11:57:43 |
7楼: |
楼主,10.3的apk安装到安卓11,还需要修改别的地方吗?我按照你的操作,还是无法安装到安卓11
----------------------------------------------
-
|
作者: |
|
2021/1/15 15:20:30 |
8楼: |
感谢大神,解决了Android11上闪退的大问题
----------------------------------------------
-
|
作者: |
bdl1 (bdl1) |
▲▲▲▲▲ |
-
|
普通会员 |
|
2021/1/15 17:16:25 |
9楼: |
多谢楼主,转贴了!
----------------------------------------------
-我的博客
|
作者: |
|
2021/1/15 21:03:07 |
10楼: |
请问一下是修改了哪个文件的源代码?
----------------------------------------------
山外青山楼外楼,能人背后有能人弄..
|
作者: |
|
2021/1/16 22:34:01 |
11楼: |
绝对不止贴出图中些。so 些。so 所以 起不来最好调试
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
|
作者: |
|
2021/1/19 17:20:53 |
12楼: |
楼主,能说说你是怎么调试的吗,这都能找到错误原因,厉害啊!
----------------------------------------------
-
|
作者: |
|
2021/1/24 17:30:49 |
13楼: |
厉害
----------------------------------------------
欢迎加入OrangeUI的app开发阵营:http://www.orangeui.cn/,联系QQ452330643
|
作者: |
|
2021/1/25 16:48:19 |
14楼: |
请问 楼主 xe10 的程序同样闪退, 请问有没有解决的办法
----------------------------------------------
-
|
作者: |
tn987 (tn987) |
▲▲▲△△ |
-
|
普通会员 |
|
2021/1/25 19:28:58 |
15楼: |
请问,修改的哪一个文件,文件名是什么?
----------------------------------------------
-
|
作者: |
tn987 (tn987) |
▲▲▲△△ |
-
|
普通会员 |
|
2021/1/25 20:30:31 |
16楼: |
修改的文件名 :\Program Files (x86)\Embarcadero\Studio\20.0\source\rtl\sys\ICU.inc
明天做个测试,看看行不行
----------------------------------------------
-
|
作者: |
tn987 (tn987) |
▲▲▲△△ |
-
|
普通会员 |
|
2021/1/26 15:40:39 |
17楼: |
试过了,这个方法可行,谢谢
----------------------------------------------
-
|
作者: |
|
2021/1/27 15:57:01 |
18楼: |
试着编译了下,发现缺文件,官方的论坛有文件,发出来共享下吧
原贴链接:https://quality.embarcadero.com/browse/RSP-27218?focusedCommentId=88179&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-88179
还有一个脚本文件,鉴于一次只能发一个文件,就贴上来吧,内容如下
@echo off setlocal set "BDS=C:\Program Files (x86)\Embarcadero\Studio\20.0" set "OUTPUT_PATH=%USERPROFILE%\build" mkdir "%OUTPUT_PATH%\android\debug" mkdir "%OUTPUT_PATH%\android\release" mkdir "%OUTPUT_PATH%\android64\debug" mkdir "%OUTPUT_PATH%\android64\release" "%BDS%\bin\dccaarm.exe" -$C- -$D2 -$O- -CG -H -M -Q -V- -W^ -Z --no-config -JPHN -W-UNSUPPORTED_CONSTRUCT -W-UNIT_DEPRECATED -W-SYMBOL_DEPRECATED -W-UNIT_PLATFORM -W-SYMBOL_PLATFORM -W-WIDECHAR_REDUCED "-R%BDS%\lib\android\debug" "-U%BDS%\lib\android\debug" "-O%BDS%\lib\android\debug" "-NU%OUTPUT_PATH%\android\debug" "-NH%OUTPUT_PATH%\android\debug" "-NO%OUTPUT_PATH%\android\debug" -M -y "%BDS%\source\rtl\sys\System.pas" "%BDS%\bin\dccaarm.exe" -$C- -$D0 -$L- -CG -H -M -Q -V- -W^ -Z --no-config -JPHN -W-UNSUPPORTED_CONSTRUCT -W-UNIT_DEPRECATED -W-SYMBOL_DEPRECATED -W-UNIT_PLATFORM -W-SYMBOL_PLATFORM -W-WIDECHAR_REDUCED "-R%BDS%\lib\android\release" "-U%BDS%\lib\android\release" "-O%BDS%\lib\android\release" "-NU%OUTPUT_PATH%\android\release" "-NH%OUTPUT_PATH%\android\release" "-NO%OUTPUT_PATH%\android\release" -M -y "%BDS%\source\rtl\sys\System.pas" "%BDS%\bin\dccaarm64.exe" -$C- -$D2 -$O- -CG -H -M -Q -V- -W^ -Z --no-config -JPHN -W-UNSUPPORTED_CONSTRUCT -W-UNIT_DEPRECATED -W-SYMBOL_DEPRECATED -W-UNIT_PLATFORM -W-SYMBOL_PLATFORM -W-WIDECHAR_REDUCED "-R%BDS%\lib\android64\debug" "-U%BDS%\lib\android64\debug" "-O%BDS%\lib\android64\debug" "-NU%OUTPUT_PATH%\android64\debug" "-NH%OUTPUT_PATH%\android64\debug" "-NO%OUTPUT_PATH%\android64\debug" -M -y "%BDS%\source\rtl\sys\System.pas" "%BDS%\bin\dccaarm64.exe" -$C- -$D0 -$L- -CG -H -M -Q -V- -W^ -Z --no-config -JPHN -W-UNSUPPORTED_CONSTRUCT -W-UNIT_DEPRECATED -W-SYMBOL_DEPRECATED -W-UNIT_PLATFORM -W-SYMBOL_PLATFORM -W-WIDECHAR_REDUCED "-R%BDS%\lib\android64\release" "-U%BDS%\lib\android64\release" "-O%BDS%\lib\android64\release" "-NU%OUTPUT_PATH%\android64\release" "-NH%OUTPUT_PATH%\android64\release" "-NO%OUTPUT_PATH%\android64\release" -M -y "%BDS%\source\rtl\sys\System.pas"
----------------------------------------------
-
|
作者: |
|
2021/2/3 14:34:28 |
19楼: |
替换文件后,反馈一下情况: 1、targetSdkVersion设置为29可以支持android11,并能正常工作,设置为28则不行,Android11启动时黑屏。 2、Android10,部分机型自带的拍照服务不能正常工作(无错误,也无法拍照)。 3、Android7,不定什么时候会卡住,无法退出。
还原后,targetSdkVersion=28,android6~Android10一切正常。
建议只针对Android11进行。
----------------------------------------------
-
|
作者: |
|
2021/3/21 8:32:34 |
20楼: |
使用10.4.2的o替换是不是好些?
----------------------------------------------
-
|
作者: |
|
2021/5/19 13:56:00 |
21楼: |
按照大家说的,不闪退了,但是还有问题
----------------------------------------------
-
|
作者: |
|
2021/5/19 18:08:51 |
22楼: |
安卓各版本不同真头大。如果是 WINDOWS,通常不会因为WIN的版本不同导致问题。
----------------------------------------------
-
|
作者: |
|
2021/5/20 15:52:45 |
23楼: |
替换后,会提示Unable to load Midas due to missing code page conversion library,加入datasnap.midas也不行。
----------------------------------------------
-
|
作者: |
|
2021/7/6 16:05:11 |
24楼: |
感谢一下, 楼主在3楼的文件替代下就能解决Android 11闪退的问题, 我用过了.
----------------------------------------------
-
|
作者: |
|
2021/10/25 11:18:45 |
25楼: |
楼主, android12上面icu会有问题吗?
----------------------------------------------
-
|
|