当前位置: 首页 > 知识库问答 >
问题:

加载位图时出现内存不足错误

甄云
2023-03-14

(所以我不会“finish();”一个应用程序。我会在用户交互之后用“startactivity(..);”开始下一个活动。)

所以在这三个活动中有一个循环。在每次活动中,我都会显示3-9张图片,这些图片位于SD卡上,我用以下功能加载SD卡:

try
{
    Uri selectedImageURI = Uri.parse(strImagePath);
    File imgFile = new  File(getRealPathFromURI(selectedImageURI, c));
    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
    ivTmp.setImageBitmap(myBitmap);
}catch (Exception e)
{
    return null;
}

这都管用。但有时(在循环几次我的活动之后),我的应用程序崩溃了…

01-16 13:42:15.863: DEBUG/dalvikvm(23161): GC_BEFORE_OOM freed 10K, 9% free 59019K/64400K, paused 29ms, total 30ms
01-16 13:42:15.863: ERROR/dalvikvm-heap(23161): Out of memory on a 8018704-byte allocation.
01-16 13:42:15.863: ERROR/AndroidRuntime(23161): FATAL EXCEPTION: main
        java.lang.OutOfMemoryError
        at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
        at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
        at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355)
        at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
        at android.content.res.Resources.loadDrawable(Resources.java:1965)
        at android.content.res.Resources.getDrawable(Resources.java:660)
        at android.widget.ImageView.resolveUri(ImageView.java:616)
        at android.widget.ImageView.setImageResource(ImageView.java:349)
        at <MyApp>.MyActivity$6.run(MyActivity.java:143)
        at android.os.Handler.handleCallback(Handler.java:725)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5039)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
        at dalvik.system.NativeStart.main(Native Method)

共有1个答案

闻人凯泽
2023-03-14

为了快速修复,您可以添加

清单应用程序标记中的android:largeheap=“true”

链接此处:

Heap size (large)
android:largeHeap="true"
 类似资料:
  • 问题内容: 编辑: 在我的应用程序中,我正在主页上加载300多个图像。我曾经加载图像。我正在。 我在 manifest中 使用了true的 大堆 : 滑行版本: 设备/ Android版本: Nexus设备6.0版 我从Json获得的每个图像都会是800kb到1mb。 activity_layout: 适配器代码: adapter_layout.xml: Logcat: 我不知道如何解决此OOM问

  • 问题内容: 在运行时,我试图将图像放置在表面视图中。当我尝试使用Drawable文件夹中的图像时,出现内存不足错误。在中快速搜索之后,我发现,如果我们从资产文件夹访问图像,将会有所缓解。但仍然在运行时出现内存不足错误。 我已经分析发现,扩展将有助于解决此类与内存相​​关的问题。问题是我的图像尺寸为1280 x 720,设备尺寸也相同。因此,我觉得缩放不会有任何效果。 由于我们在该社区中拥有专家,如

  • 我从记忆中得到消息。我是Android的初学者,我不知道原因。我如何解决这个问题?下面是日志: 1.424 4944-4944/com.bsp.AndroidTraining E/ART:抛出OutOfMemoryError“在OOM之前无法分配带有12个空闲字节和12B的162字节分配”(递归情况)06-10 02:03:51.454 494-4944/com.bsp.androidTraini

  • 问题内容: 我正在使用位图。它抛出内存不足错误(5次中的2次)。如何避免。 以下是我的代码 : 问题答案: 你得到的OutOfMemoryError因为你没有 那些你用 尝试那些你使用它们后

  • 我正在使用PDFBox从我的webapp中提取数据并将其放入PDF。我有一个方法,在每个PDF页面上绘制标题。但是,当我向每个页面添加图像时,文档的内存就会耗尽。我想知道有没有人有什么解决的办法?下面是我的drawHeader方法: public static void drawHeader(PDDocument doc,PDPage page,PDPageContentStream conten

  • 我实现了firebasegoogle(com.google.firebase:firebaseauth:9.0.2),但是当我调用 我收到一条消息,内存不足。我是初学者,我不知道原因。如何解决这个问题?这是日志: