【问题标题】:Android app crashes after clearing RAM memory清除 RAM 内存后,Android 应用程序崩溃
【发布时间】:2014-05-29 09:32:29
【问题描述】:

我有一个运行良好的安卓应用。但是当我尝试清理内存然后尝试打开时,它会崩溃并在几个地方给出 NullPointerException。我知道当用户清除内存时,android 会清除所有变量和 sharedPreferences。现在我的问题是我们可以知道用户何时在手机设置中清除 RAM 内存。

这里是 Logcat

05-29 15:34:19.813: E/AndroidRuntime(4932): FATAL EXCEPTION: main
05-29 15:34:19.813: E/AndroidRuntime(4932): java.lang.RuntimeException: Unable to start         activity ComponentInfo{com.softwaysolutions.rcommunication/com.softwaysolutions.rcommunication.MainActivity}: java.lang.NullPointerException
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2088)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2113)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.app.ActivityThread.access$700(ActivityThread.java:139)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1224)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.os.Looper.loop(Looper.java:137)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.app.ActivityThread.main(ActivityThread.java:4918)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at java.lang.reflect.Method.invokeNative(Native Method)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at java.lang.reflect.Method.invoke(Method.java:511)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at dalvik.system.NativeStart.main(Native Method)
05-29 15:34:19.813: E/AndroidRuntime(4932): Caused by: java.lang.NullPointerException
05-29 15:34:19.813: E/AndroidRuntime(4932):     at com.softwaysolutions.rcommunication.NowPlayingFragment.startMyAACService(NowPlayingFragment.java:378)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at com.softwaysolutions.rcommunication.NowPlayingFragment.onCreateView(NowPlayingFragment.java:112)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1884)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:566)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1178)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.app.Activity.performStart(Activity.java:5058)
05-29 15:34:19.813: E/AndroidRuntime(4932):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2061)
05-29 15:34:19.813: E/AndroidRuntime(4932):     ... 11 more

提前致谢。

【问题讨论】:

  • 具体有哪些地方?
  • 发布你的代码,你有崩溃的地方
  • 通常为此,首选项有一个默认值...并将代码的一部分发布在它提供空指针的地方,以便我们提供帮助
  • 检查 NowPlayingFragment.java 类的第 378 行。
  • @Siddharth,我已经检查过了,问题是我试图从一个变量访问全局值,该变量在清除手机设置中的内存后变为空。实际上我的问题是我们可以知道用户何时在手机设置中清除 RAM 内存?

标签: java android android-fragments ram


【解决方案1】:

我已经检查过了,问题是我正在尝试访问全局 价值

您需要将所有数据保存在onSavedInstanceState 并恢复到onRestoreInstanceState

【讨论】:

【解决方案2】:

根据您的异常堆栈跟踪:

操作系统从内存中清除您的 Activity,并且片段内的对象变为 NULL,

确保使用 onSavedInstanceState 保存实例并使用 onRestoreInstanceState 恢复实例。

https://stackoverflow.com/a/41018096/4903773

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2011-08-26
    • 1970-01-01
    • 2014-03-09
    • 2013-08-12
    • 1970-01-01
    相关资源
    最近更新 更多