gedoor / legado

Legado 3.0 Book Reader with powerful controls & full functions❤️阅读3.0, 阅读是一款可以自定义来源阅读网络内容的工具,为广大网络文学爱好者提供一种方便、快捷舒适的试读体验。
GNU General Public License v3.0
29.14k stars 3.86k forks source link

书籍换源搜索时,当书源超过一定数量,会出现卡死崩溃的问题 #4017

Closed WySen-Yeah closed 2 months ago

WySen-Yeah commented 3 months ago

确认 / Assignments

问题描述 / Describe Bugs

书籍换源搜索时,当书源超过一定数量,(当前书源1026个),会出现卡死崩溃的问题,出现这种情况不限于手机的性能,很早的性能极差的老手机,高端旗舰手机,中端普通手机,以及电脑模拟器,等所有能安装阅读的设备都稳定触发该问题,并且重启,重装软件都依旧存在该问题,经测试书源数量在300左右就能稳定触发崩溃,数量越多,搜索时出现卡顿崩溃的速度越快,希望可以尽快修复,这个问题极其影响使用,总是导致搜书失败,无法找到合适的书源使用

复现步骤 / How to reproduce

书源数量超过300以上后换源

确认 / Assignment

其他信息 / Additions

No response

日志提交 / Relevant log output

"SDK_INT=34 WebViewUserAgent=Mozilla/5.0 (Linux; Android 14; 23049RAD8C Build/UKQ1.230804.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/121.0.6167.144 Mobile Safari/537.36 MODEL=23049RAD8C RELEASE=14 MANUFACTURER=Xiaomi versionName=3.23.110211 versionCode=14860 BRAND=Redmi java.lang.OutOfMemoryError: Failed to allocate a 96 byte allocation with 2147182 free bytes and 2096KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC. at android.os.perfdebug.MessageMonitorImpl$MessageMonitorInfoImpl.markFinish(MessageMonitorImpl.java:1013) at android.os.perfdebug.MessageMonitorImpl.markFinish(MessageMonitorImpl.java:309) at android.os.Looper.loopOnce(Looper.java:242) at android.os.Looper.loop(Looper.java:318) at android.app.ActivityThread.main(ActivityThread.java:8767) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:561) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013) "

阅读版本 / Legado version

3.23.110211

Android版本 / Android version

Android 14

机型 / Model

红米note 12 Turbo

821938089 commented 3 months ago

需要提供更多信息才能知道是什么问题

1.把你所用的书源全部导出一份上传上来

2.安装最新测试版,在其他设置里打开记录堆转储,复现崩溃后去关于那里点保存日志,然后去备份目录里将heapDump文件夹里的文件打包压缩一下上传上来

WySen-Yeah commented 3 months ago

最新测试版是哪个版本,我现在用的是3.23.110211版本,其他设置里没记录堆转储这个功能,而且也没有保存日志这个功能,软件崩溃时自动保存的崩溃日志不能用吗?崩溃日志我上传了

821938089 commented 3 months ago

最新测试版下载: https://github.com/gedoor/legado/actions/workflows/test.yml?query=branch%3Amaster 第一个工作流里的Artifacts

这个是内存不足的崩溃,这种崩溃的日志信息不能用

WySen-Yeah commented 3 months ago

上传不了,限制文件大小,极限压缩压完是76m,github只能传25m

WySen-Yeah commented 3 months ago

书源和日志分卷.zip 书源和日志分卷1(删.zip后缀).z01.zip 书源和日志分卷2(删.zip后缀).z02.zip 书源和日志分卷3(删.zip后缀).z03.zip 我把文件分了卷,把带z01,z02,z03的3个文件的zip后缀删掉解压

821938089 commented 3 months ago

你试试最新测试版,应该有所改善

WySen-Yeah commented 3 months ago

目前最新测试没有崩溃,而且我注意到页面样式用WebDav备份导入不完全有效(只生效了背景),而且用之前保存的本地页面样式包导入之后字体会变成白色

WySen-Yeah commented 3 months ago

我又测试了一下,页面样式用WebDav备份导入之后,具体是字体不生效,原先的页面样式的字体数据对于没有同步的不同的字体效果不一样,但改了字体之后,效果是完全一样的

821938089 commented 3 months ago

WebDav不会备份字体和图片背景,这两个要自己重新设置

WySen-Yeah commented 3 months ago

测试版3.24.070714有一个新的问题,文本替换为空时有极大可能出现替换不生效

821938089 commented 3 months ago

你录个视频看看

WySen-Yeah commented 3 months ago

现在不确定究竟怎样稳定触发这个问题,单纯复现还做不到,我再碰到会录视频

WySen-Yeah commented 3 months ago

测试版3.24.070714文本替换为空时出现替换不生效录屏 录屏.zip

821938089 commented 3 months ago

试试最新测试版,应该修复了

yezheyu commented 2 months ago

我也遇到这个问题,清空书源,重新导入书源时少导点就可以