gpt4 book ai didi

android - 第二次启动后 Android 6.0.1 设备上的 OutOfMemory 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:50:48 24 4
gpt4 key购买 nike

在我将 S6 Edge 更新到 Android 6.0.1 之前,我的项目一直在运行。

第二次启动应用程序崩溃并出现 OutOfMemory 错误。

该应用程序在目录中包含 2000 多张图像,我使用计时器来递增计数器并将它们显示在 imageView 上。当调用 onFinish()/onPause()/onDestroy() 时,我通过将它们设置为 null 来销毁/取消所有对象,例如计时器、计数器和 imageView。

这就是我获取/打印图像到 imageView 的方式

int resID = getResources().getIdentifier("animation"+i , "drawable", getPackageName());
Drawable animationFrame = ContextCompat.getDrawable(this, resID);
animationView.setImageDrawable(animationFrame);
i++;

它在初始启动时运行(即使我使用生成的 APK 安装应用程序)。当我从最小化的应用程序中删除应用程序时,应用程序会在 2-3 秒后崩溃。我检查了分配的内存,第一次运行时它是正常的(最多 12MB),而第二次运行时分配的内存是 255MB。

onDestroy() 方法这包括 ALL 我初始化的变量。我的变量被初始化为私有(private)或没有访问变量。

@Override
protected void onDestroy() {
super.onDestroy();
pauseAnimation();
animationView.setImageDrawable(null);
animationView = null;
justAnimation = null;
buttonSign = null;
i = 0;
media.stop();
media = null;
deathRateEU = 0;
deathRateUK = 0;
labelNumber = null;
labelNumberUK = null;
buttonSign = null;
loadingEU = null;
loadingUK = null;

}

Media 是一个初始化为公共(public)的 MediaPlayer,它会在计数器 (i) 到达某个点时播放声音

我在另一台运行 Android 5.1.3 的设备上安装了它(不确定,但它是 5.1 的东西)。

在 Android 6.0.1 上最小化应用程序时是否存在 OutOfMemory 问题的已知错误?

我 100% 确定我的手机更新到版本 6.0.1 之前/之后我没有做任何更改

第一次启动时的内存监视器
enter image description here

第二次发布
enter image description here

注意事项:

  1. 如果应用程序已经安装在设备上并且我尝试使用 Android Studio 编译它,则会发生崩溃
  2. 我必须卸载/重新编译才能让应用程序在第一时间运行
  3. 当我尝试在 Genymotion Android 6.0 设备上而不是在 Android 5.1 genymotion 虚拟设备上运行我的项目时,我遇到了同样的错误

最佳答案

我建议您使用 Glide高效加载大图像的库。
您也可以查看 this有关如何高效加载位图的文章。

关于android - 第二次启动后 Android 6.0.1 设备上的 OutOfMemory 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36693083/

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