ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

加载大PDF时应用程序崩溃

2019-11-10 20:28:40  阅读:701  来源: 互联网

标签:pdf out-of-memory android


有人知道如何在Android中加载大pdf文件吗?我使用“ android-pdf-viewer”加载此类文件.文件较小时可以使用.但是一旦文件太大(例如150M),它将引发OOM异常.

11-28 21:07:43.596 7844-8419/com.example.caoweizhao.readerapp E/art: Out 
of memory: Heap Size=192MB, Allocated=83MB, Capacity=192MB
11-28 21:07:43.596 7844-8419/com.example.caoweizhao.readerapp W/art: 
Throwing OutOfMemoryError "Failed to allocate a 134209548 byte 
allocation with 16777216 free bytes and 108MB until OOM"
11-28 21:07:43.607 7844-7844/com.example.caoweizhao.readerapp E/PDFView: load pdf error
                                                                     java.lang.OutOfMemoryError: Failed to allocate a 134209548 byte allocation with 16777216 free bytes and 108MB until OOM
                                                                         at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:91)
                                                                         at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201)
                                                                         at com.github.barteksc.pdfviewer.util.Util.toByteArray(Util.java:37)
                                                                         at com.github.barteksc.pdfviewer.source.InputStreamSource.createDocument(InputStreamSource.java:37)
                                                                         at com.github.barteksc.pdfviewer.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:53)
                                                                         at com.github.barteksc.pdfviewer.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:25)
                                                                         at android.os.AsyncTask$2.call(AsyncTask.java:295)
                                                                         at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                                         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                                         at java.lang.Thread.run(Thread.java:818)

11

解决方法:

在您的AndroidManifest.xml文件中,在应用程序标记中添加android:largeHeap =“ true”

标签:pdf,out-of-memory,android
来源: https://codeday.me/bug/20191110/2014667.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有