legado icon indicating copy to clipboard operation
legado copied to clipboard

[BUG] 加载一本16MB+的本地书导致软件内存溢出软件崩溃 OOM

Open lvzhenbo opened this issue 2 years ago • 4 comments

浏览器版本(web端反馈,先勾选浏览器,然后填版本号)

  • [ ] Chrome/Edge/Firefox PC
  • [x] Chrome/Edge/Firefox/WebView Android
  • [ ] 其他浏览器,请补充

机型(如Redmi K30 Pro)

MI MIX4

安卓版本(如Android 7.1.1)

Android 10

阅读Legdao版本(我的-关于-版本,如3.20.112220)

3.22.062320

网络环境(移动,联通,电信,移动宽带,联通宽带,电信宽带,等等..)

电信

问题描述(简要描述发生的问题)

内存溢出,软件崩溃

相关截图

2236a12133c0f36a7a620bcc6bb2d84

复现步骤(详细描述导致问题产生的操作步骤,如果能稳定复现)

加载一本16MB+的本地书,点开,然后如上图

使用书源(填写URL或者JSON)

点击展开

http://www.freexiaoshuo.com/a/dushiyule/2018/0414/275.html

日志提交(我的-关于-崩溃日志,书架-右上角-日志)

点击展开

MANUFACTURER=Xiaomi
versionName=3.22.062320
versionCode=11733
BRAND=Xiaomi
java.lang.OutOfMemoryError: Failed to allocate a 17332208 byte allocation with 5311504 free bytes and 5187KB until OOM, target footprint 268435456, growth limit 268435456
	at java.util.Arrays.copyOf(Arrays.java:3257)
	at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
	at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
	at java.lang.StringBuffer.append(StringBuffer.java:270)
	at java.io.StringWriter.write(StringWriter.java:112)
	at java.io.PrintWriter.write(PrintWriter.java:456)
	at java.io.PrintWriter.write(PrintWriter.java:473)
	at java.io.PrintWriter.print(PrintWriter.java:603)
	at java.io.PrintWriter.println(PrintWriter.java:756)
	at java.lang.Throwable$WrappedPrintWriter.println(Throwable.java:778)
	at java.lang.Throwable.printStackTrace(Throwable.java:667)
	at java.lang.Throwable.printStackTrace(Throwable.java:735)
	at io.legado.app.help.CrashHandler$Companion.saveCrashInfo2File(CrashHandler.kt:91)
	at io.legado.app.utils.RegexExtensionsKt$replace$lambda-2$$inlined$postDelayed$default$1.run(Handler.kt:75)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:210)
	at android.os.Looper.loop(Looper.java:299)
	at android.app.ActivityThread.main(ActivityThread.java:8105)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)


lvzhenbo avatar Jun 28 '22 01:06 lvzhenbo

收到

gedoor avatar Jun 28 '22 06:06 gedoor

由于长期没有状态更新,该问题将于5天后自动关闭。如有需要可重新打开。

github-actions[bot] avatar Jul 29 '22 02:07 github-actions[bot]

?这个问题解决了吗,我试了试还是导致内存溢出软件重新加载

lvzhenbo avatar Jul 29 '22 02:07 lvzhenbo

还没,等我有空的

gedoor avatar Jul 29 '22 12:07 gedoor

fixed https://github.com/gedoor/legado/pull/2107

Xwite avatar Aug 14 '22 06:08 Xwite