По непонятной причине сегодня стало вываливаться приложение на эмуляторе. Делал три недели назад, все работало. Сейчас просто занимаюсь его доработкой. Ошибка появляется при обращении к настройкам. Причем на эмуляторе с android 5.1 все работает, а на эмуляторе с android 7.0 - вываливается. Почему, помогите разобраться?
Код SettingsActivity:
import android.os.Bundle;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportFragmentManager()
.beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
}
}
Код SettingsFragment
import android.os.Bundle;
import android.support.v7.preference.PreferenceFragmentCompat;
public class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences, rootKey);
}
}
Код PreferenceScreen
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<ListPreference
android:icon="@drawable/ic_text"
android:defaultValue="3"
android:entries="@array/Set_string"
android:entryValues="@array/Set_Values"
android:summary="%s"
android:key="size"
android:title="@string/Сhoose_Size">
</ListPreference>
<Preference
android:icon="@drawable/ic_info"
android:title="Сайт Свято-Покровської Церкви"
android:summary="pokrova.pl.ua" >
<intent
android:action="android.intent.action.VIEW"
android:data="@string/url_site" />
</Preference>
</PreferenceScreen>
string-array
<string name="url_site">https://pokrova.pl.ua</string>
<string name="size" translatable="false">size</string>
<string-array name="Set_string">
<item>14</item>
<item>16</item>
<item>18</item>
<item>20</item>
<item>22</item>
<item>24</item>
<item>26</item>
</string-array>
<string-array name="Set_Values">
<item>14</item>
<item>16</item>
<item>18</item>
<item>20</item>
<item>22</item>
<item>24</item>
<item>26</item>
</string-array>
Код ошибки
--------- beginning of crash
2019-08-30 19:48:30.490 1055-1055/ua.pl.prayerbook E/AndroidRuntime: FATAL EXCEPTION: main
Process: ua.pl.prayerbook, PID: 1055
java.lang.RuntimeException: Unable to start activity ComponentInfo{ua.pl.prayerbook/ua.pl.prayerbook.SettingsActivity}: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at android.app.SharedPreferencesImpl.getString(SharedPreferencesImpl.java:225)
at android.support.v7.preference.Preference.getPersistedString(Preference.java:1668)
at android.support.v7.preference.ListPreference.onSetInitialValue(ListPreference.java:260)
at android.support.v7.preference.Preference.onSetInitialValue(Preference.java:1594)
at android.support.v7.preference.Preference.dispatchSetInitialValue(Preference.java:1566)
at android.support.v7.preference.Preference.onAttachedToHierarchy(Preference.java:1293)
at android.support.v7.preference.Preference.onAttachedToHierarchy(Preference.java:1305)
at android.support.v7.preference.PreferenceGroup.addPreference(PreferenceGroup.java:260)
at android.support.v7.preference.PreferenceGroup.addItemFromInflater(PreferenceGroup.java:181)
at android.support.v7.preference.PreferenceInflater.rInflate(PreferenceInflater.java:363)
at android.support.v7.preference.PreferenceInflater.inflate(PreferenceInflater.java:170)
at android.support.v7.preference.PreferenceInflater.inflate(PreferenceInflater.java:120)
at android.support.v7.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:138)
at android.support.v7.preference.PreferenceFragmentCompat.setPreferencesFromResource(PreferenceFragmentCompat.java:445)
at ua.pl.prayerbook.SettingsFragment.onCreatePreferences(SettingsFragment.java:10)
at android.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:228)
at android.support.v4.app.Fragment.performCreate(Fragment.java:2414)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1418)
at android.support.v4.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1195)
at android.support.v4.app.FragmentTransition.calculateFragments(FragmentTransition.java:1078)
at android.support.v4.app.FragmentTransition.startTransitions(FragmentTransition.java:117)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2408)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3273)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:620)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1248)
at android.app.Activity.performStart(Activity.java:6679)