android - 内存异常会导致 NullPointerException 吗?

标签 android nullpointerexception out-of-memory

我的 android 应用程序有点复杂,它有 34 个 Activity ,有时其中 5 个留在后台,上面有很多位图。

在像 galaxy s3 这样的新设备上,我从来没有遇到过错误。但是在内存不足的旧设备上,我得到了很多 NullPointerExceptions,甚至没有一个 OutOfMemoryException。

所以我的问题是:这些 NullPointerExceptions 可能是由 OutOfMemoryException 引起的吗???

这是异常(exception)之一:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nasseralsalmi.wheel/com.nasseralsalmi.wheel.ModelsActivity}: java.lang.NullPointerException : at com.nasseralsalmi.wheel.ModelsActivity.onCreate(ModelsActivity.java:118)
Caused by: java.lang.NullPointerException at com.nasseralsalmi.wheel.ModelsActivity.onCreate(ModelsActivity.java:118)

这是 ModelsActivity.java 的一部分:

public void onCreate(Bundle savedInstanceState)
{
    .
    .
    .
    Bundle b = this.getIntent().getExtras();       // line 117
    car = b.getParcelable("car");                  // line 118
    .
    .
    .
}

谢谢大家

最佳答案

是的,大多数 NPE 都与内存问题有关。您异常(exception)的原因是,android 系统在需要内存时会破坏后台 Activity 。为了防止因为这个原因导致的异常,你应该使用onSaveInstanceStaterestoreInstanceState方法来帮助我们在android系统销毁 Activity 时存储数据。在重新创建 Activity 后,您的 bundle 似乎变为空。

您可以通过选中开发者选项/不要在您的 Android 设备上保留 Activity 来模拟您的异常。

关于android - 内存异常会导致 NullPointerException 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25957322/

相关文章:

Android google maps api 导航设施

android - 自定义进度条安卓

java - 当我想在私有(private)类中访问它时,哈希表为空

android - NullPointerException - 尝试获取空数组的长度 (readDirectory())

android - 为什么我所有的位图都上采样了 200%?

android - 气球聊天应用程序问题

android - 用手指移动 OpenGL 对象

c# - 在 C# 中构建字符串数组并检查空值?

android - 高分辨率图像 - OutOfMemoryError

c# - HttpClient.getAsync() 内存不足异常