2016-07-27 3 views
-2

У меня есть статические значения, которые удаляются после того, как мое приложение долгое время находится в фоновом режиме или после открытия многих разных приложений, что приводит к сбою моего приложения. Я думаю, что ОС Android удаляет данные из моего приложения или «убивает» его. Есть ли способ сохранить данные моего приложения, чтобы избежать этой проблемы?Ошибка приложения при восстановлении с фона

ПРИМЕЧАНИЕ: Я не могу сохранить эти значения на SharedPreferences или в базе данных, так как существует много HashMaps и ArrayLists, информации слишком много. Необходимо, чтобы эти значения были статичными, потому что они мне нужны во многих классах моего приложения в любое время.

E/AndroidRuntime: FATAL EXCEPTION: main 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.proyect/com.proyect.gui.ActivityMenu}: java.lang.NullPointerException: println needs a message 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2266) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316) 
at android.app.ActivityThread.access$600(ActivityThread.java:150) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1298) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:213) 
at android.app.ActivityThread.main(ActivityThread.java:5225) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:525) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException: println needs a message 
at android.util.Log.println_native(Native Method) 
at android.util.Log.v(Log.java:117) 
at com.proyect.gui.FragmentMenu.onActivityCreated(FragmentMenu.java:145) 
at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1983) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1092) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1234) 
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2046) 
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:174) 
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597) 
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171) 
at android.app.Activity.performStart(Activity.java:5143) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2239) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316)  
at android.app.ActivityThread.access$600(ActivityThread.java:150)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1298)  
at android.os.Handler.dispatchMessage(Handler.java:99)  
at android.os.Looper.loop(Looper.java:213)  
at android.app.ActivityThread.main(ActivityThread.java:5225)  
at java.lang.reflect.Method.invokeNative(Native Method)  
at java.lang.reflect.Method.invoke(Method.java:525)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)  
at dalvik.system.NativeStart.main(Native Method)  
+0

Можете ли вы опубликовать лог-кошку сбой? – SripadRaj

+0

Статические значения не должны удаляться таким образом. Как сказал Шри, поделитесь своим logCat – Shaishav

+0

. Вы не можете запретить ОС убивать ваше приложение, поэтому вам не нужно сохранять данные в каком-то постоянном хранилище. –

ответ

0

Изменить это:

Log.v("errorTag", e.getMessage()); 

Для этого:

String error = e.getMessage(); 
if(error == null) 
    error = "It's crashed here"; 
Log.v("errorTag", error); 

ИЛИ ПРОЩЕ

Log.v("errorTag", e); 

Дело в том, что e.getMessage() равна нулю. Итак, всегда проверяйте, нет ли e.getMessage() не null, прежде чем напечатать его

+0

Проблема в том, что мне нужны статические значения в большем количестве кланов, если я это сделаю, приложение потерпит крах в другом классе, потому что статические значения останутся пустыми. Мне нужно сохранить ценности. –

+0

Дело в том, что e.getMessage() равно null ... Итак, вы ничего не можете сделать ... это null ... e.getMessage() может возвращать нуль ... Итак, всегда проверяйте, является ли e.getMessage() не имеет значения null перед печатью – W0rmH0le

+0

Я могу удалить все e.getMessage(), я могу проверить, не является ли e.getMessage() не равным нулю во всех классах, но проблема в том, что статические значения, которые мне нужны, равны нулю, когда я восстановить приложение из фона. В этом проблема, –

Смежные вопросы