【发布时间】: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