Question

I am using the Holoeverywhere library. I should have a preference where the user picks a date. I put this preference in my file like this

<org.holoeverywhere.preference.DatePreference
        android:key="preference_birth_date"
        android:summary="@string/preference_birth_date"
        android:title="@string/preference_birth_date" />

When i start the preference screen I get the following error:

01-17 23:11:10.719: E/AndroidRuntime(26307): FATAL EXCEPTION: main
01-17 23:11:10.719: E/AndroidRuntime(26307): java.lang.RuntimeException: Unable to start activity ComponentInfo{dev.gauss.istrabike/dev.gauss.istrabike.settings.UserProfilePreferencesActivity}: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
01-17 23:11:10.719: E/AndroidRuntime(26307):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2092)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at android.app.ActivityThread.access$700(ActivityThread.java:134)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at android.os.Looper.loop(Looper.java:137)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at android.app.ActivityThread.main(ActivityThread.java:4867)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at java.lang.reflect.Method.invokeNative(Native Method)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at java.lang.reflect.Method.invoke(Method.java:511)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at dalvik.system.NativeStart.main(Native Method)
01-17 23:11:10.719: E/AndroidRuntime(26307): Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
01-17 23:11:10.719: E/AndroidRuntime(26307):    at android.app.SharedPreferencesImpl.getLong(SharedPreferencesImpl.java:228)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.preference._SharedPreferencesImpl_XML.getLong(_SharedPreferencesImpl_XML.java:263)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.preference._SharedPreferencesImpl_XML.getLong(_SharedPreferencesImpl_XML.java:263)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.preference.Preference.getPersistedLong(Preference.java:412)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.preference.DatePreference.onSetInitialValue(DatePreference.java:144)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.preference.Preference.dispatchSetInitialValue(Preference.java:178)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.preference.Preference.onAttachedToHierarchy(Preference.java:607)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.preference.PreferenceGroup.addPreference(PreferenceGroup.java:74)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.preference.PreferenceGroup.addItemFromInflater(PreferenceGroup.java:40)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.preference.PreferenceGroup.addItemFromInflater(PreferenceGroup.java:1)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.app.GenericInflater.rInflate(GenericInflater.java:262)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.app.GenericInflater.rInflate(GenericInflater.java:263)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.app.GenericInflater.inflate(GenericInflater.java:194)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.app.GenericInflater.inflate(GenericInflater.java:164)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.app.GenericInflater.inflate(GenericInflater.java:158)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:384)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at org.holoeverywhere.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:284)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at dev.gauss.istrabike.settings.UserProfilePreferencesActivity.onCreate(UserProfilePreferencesActivity.java:68)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at android.app.Activity.performCreate(Activity.java:5047)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
01-17 23:11:10.719: E/AndroidRuntime(26307):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056)
01-17 23:11:10.719: E/AndroidRuntime(26307):    ... 11 more

When I remove the preference from the XML file everything works fine. I only set the preference in the XML I didn't do anything in code yet.

Was it helpful?

Solution

You have a string value with key preference_birth_date in your store. It caused by using EditTextPreference earlier with the same key. Just clear app data or change key to something else.

OTHER TIPS

It looks that your not yet implemented class 'ComponentInfo' has problem with casting string to long, look into code of that class or override 'onCreate' method in any subclass of 'ComponentInfo'.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top