After months of developing I realize that my app (only using android 2.1) crashes when I rotate screen. I don’t know how investigate about this error. What should be the cause? Thanks for advices. Can this “warning” cause error? Unexpected resume of com.example.app while already resumed in com.example.app
SharedPreferences prefs3 = PreferenceManager.getDefaultSharedPreferences(this);
listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs, String listpref) {
preferenze();
E/AndroidRuntime( 1269): java.lang.StackOverflowError
E/AndroidRuntime( 1269): at java.util.HashMap.doubleCapacity(HashMap.java:561)
E/AndroidRuntime( 1269): at java.util.HashMap.put(HashMap.java:391)
E/AndroidRuntime( 1269): at java.util.HashSet.add(HashSet.java:95)
E/AndroidRuntime( 1269): at java.nio.charset.Charset.<init>(Charset.java:189)
E/AndroidRuntime( 1269): at com.ibm.icu4jni.charset.CharsetICU.<init>(CharsetICU.java:33)
E/AndroidRuntime( 1269): at com.ibm.icu4jni.charset.CharsetProviderICU.getCharset(CharsetProviderICU.java:62)
E/AndroidRuntime( 1269): at com.ibm.icu4jni.charset.CharsetProviderICU.charsetForName(CharsetProviderICU.java:57)
E/AndroidRuntime( 1269): at java.nio.charset.Charset.forNameInternal(Charset.java:500)
E/AndroidRuntime( 1269): at java.nio.charset.Charset.forName(Charset.java:570)
E/AndroidRuntime( 1269): at com.android.internal.util.FastXmlSerializer.setOutput(FastXmlSerializer.java:292)
E/AndroidRuntime( 1269): at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:180)
E/AndroidRuntime( 1269): at android.app.ApplicationContext$SharedPreferencesImpl.writeFileLocked(ApplicationContext.java:2757)
E/AndroidRuntime( 1269): at android.app.ApplicationContext$SharedPreferencesImpl.access$800(ApplicationContext.java:2510)
E/AndroidRuntime( 1269): at android.app.ApplicationContext$SharedPreferencesImpl$EditorImpl.commit(ApplicationContext.java:2695)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.preferenze(MainActivity.java:3656)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.access$0(MainActivity.java:3632)
E/AndroidRuntime( 1269): at com.example.app.MainActivity$1.onSharedPreferenceChanged(MainActivity.java:2421)
E/AndroidRuntime( 1269): at android.app.ApplicationContext$SharedPreferencesImpl$EditorImpl.commit(ApplicationContext.java:2703)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.preferenze(MainActivity.java:3732)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.access$0(MainActivity.java:3632)
E/AndroidRuntime( 1269): at com.example.app.MainActivity$1.onSharedPreferenceChanged(MainActivity.java:2421)
E/AndroidRuntime( 1269): at android.app.ApplicationContext$SharedPreferencesImpl$EditorImpl.commit(ApplicationContext.java:2703)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.preferenze(MainActivity.java:3732)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.access$0(MainActivity.java:3632)
E/AndroidRuntime( 1269): at com.example.app.MainActivity$1.onSharedPreferenceChanged(MainActivity.java:2421)
E/AndroidRuntime( 1269): at android.app.ApplicationContext$SharedPreferencesImpl$EditorImpl.commit(ApplicationContext.java:2703)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.preferenze(MainActivity.java:3732)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.access$0(MainActivity.java:3632)
E/AndroidRuntime( 1269): at com.example.app.MainActivity$1.onSharedPreferenceChanged(MainActivity.java:2421)
E/AndroidRuntime( 1269): at android.app.ApplicationContext$SharedPreferencesImpl$EditorImpl.commit(ApplicationContext.java:2703)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.preferenze(MainActivity.java:3732)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.access$0(MainActivity.java:3632)
E/AndroidRuntime( 1269): at com.example.app.MainActivity$1.onSharedPreferenceChanged(MainActivity.java:2421)
E/AndroidRuntime( 1269): at android.app.ApplicationContext$SharedPreferencesImpl$EditorImpl.commit(ApplicationContext.java:2703)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.preferenze(MainActivity.java:3732)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.access$0(MainActivity.java:3632)
E/AndroidRuntime( 1269): at com.example.app.MainActivity$1.onSharedPreferenceChanged(MainActivity.java:2421)
E/AndroidRuntime( 1269): at android.app.ApplicationContext$SharedPreferencesImpl$EditorImpl.commit(ApplicationContext.java:2703)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.preferenze(MainActivity.java:3732)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.access$0(MainActivity.java:3632)
E/AndroidRuntime( 1269): at com.example.app.MainActivity$1.onSharedPreferenceChanged(MainActivity.java:2421)
E/AndroidRuntime( 1269): at android.app.ApplicationContext$SharedPreferencesImpl$EditorImpl.commit(ApplicationContext.java:2703)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.preferenze(MainActivity.java:3732)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.access$0(MainActivity.java:3632)
E/AndroidRuntime( 1269): at com.example.app.MainActivity$1.onSharedPreferenceChanged(MainActivity.java:2421)
E/AndroidRuntime( 1269): at android.app.ApplicationContext$SharedPreferencesImpl$EditorImpl.commit(ApplicationContext.java:2703)
E/AndroidRuntime( 1269): at com.example.app.MainActivity.preferenze(MainActivity.java:3732)
E/AndroidRuntime( 1269): a
The problem is in your
preferenzeroutine in your MainActivity.java.Would need to see some more code to be sure, but it appears you have an infinite recursion caused by modifying your
Preferencesinside aonSharedPreferenceChangedcallback. If you edit your preferences in the callback, the callback gets invoked again, then you edit again, the callback gets invoked again, etc, etc.