gpt4 book ai didi

java.lang.outofmemoryerror android.graphics.BitmapFactory.nativeDecodeAsset(本地方法)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:30:27 25 4
gpt4 key购买 nike

在设置内容 View 时我遇到了这个异常。我已经尝试通过以下方式处理此异常:

try{
setContentView(R.layout.activity_main);

}catch (OutOfMemoryError e) {
e.printStackTrace();
}

此异常在测试时大约出现 100 次中的 5 次。但我无法解决这个问题。否则我的 QA 团队会因此杀了我 :(

最佳答案

有多种方法可以解决此类错误。通常是因为您的布局上的图像分辨率太高。以下是您的选择:

  1. 请求较低分辨率的图像(较少像素)。这可能是 Not Acceptable ,但您的团队应该意识到内存限制。

  2. 从布局中移除图像,但保留 ImageView 元素(如果有)。如果它是背景,请删除背景。然后使用java高效地加载图像。在加载之前,您需要测量屏幕尺寸和/或您想要图像的元素的尺寸。 Android 文档在这里有一个很好的例子:

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

  1. 为您的应用增加“heapSize”。这是最后的手段!否则,您将来可能会遇到同样的错误,然后必须使用上述方法之一来解决它……然后您的 QA 真的不会喜欢您!以下是关于 heapSize 的引用:

How to increase heap size of an android application?

也有可能您正在引用另一个屏幕上的图像或存在内存泄漏,在这种情况下,您需要检查在此之前调用的任何/所有代码(包括其他 Activity )以找出这些泄漏的位置。可能的原因是将 Activity 传递给后台线程或服务而不是仅传递它的上下文,创建对图像的静态引用,不使用 WeakReference 来处理传递的大内存对象到其他线程/进程,或其他不寻常的对象引用方法。

关于java.lang.outofmemoryerror android.graphics.BitmapFactory.nativeDecodeAsset(本地方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27916019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com