Reputation: 1884
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.
Upvotes: 0
Views: 102
Reputation: 945
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.
Upvotes: 1
Reputation: 3684
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'.
Upvotes: 0