0

I've android app which works fine. But when i try to clean the memory and then try to open, it crashes and gives NullPointerException in several places. I know that when user clears memory then android clears all variables and sharedPreferences. Now my question is there a way we can know when user clears RAM memory in phone settings.

enter image description here

Here is the 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

Thanks in advance.

Ramesh
  • 1,252
  • 3
  • 12
  • 30

2 Answers2

1

I've checked there and the thing is i'm trying to access a global value

You need to save all your data in onSavedInstanceState and restore it on onRestoreInstanceState.

ArtemStorozhuk
  • 8,715
  • 4
  • 35
  • 53
  • Hi @ArtemStorozhuk, thank you for the solution. I've followed this tutorial and it worked. http://developer.android.com/training/basics/activity-lifecycle/recreating.html – Ramesh May 30 '14 at 07:32
1

According to your exception stack trace :

Your Activity is cleared by OS from memory and the object inside fragment is becoming NULL,

Make sure you use onSavedInstanceState to save instance and onRestoreInstanceState to restore instance.

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

Community
  • 1
  • 1