sharedPreferencesImpl.getInt ClassCastException错误

问题描述 投票:0回答:1

我的Android应用程序可在大多数手机上使用,但是在某些手机(RedMi Note 8等)上打开时,它给出了此类停止的错误。我正在使用sharedPreferences来存储数据。但我不知道错误的原因是什么。你能帮我吗?

@SuppressLint("InflateParams")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
    } else {
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
    Intent intent = getIntent();
    locale = intent.getStringExtra("locale");

    localeMethod(locale);
    setContentView(R.layout.activity_main);

    instance = this;
    defaultlocale = Locale.getDefault().getLanguage().toUpperCase();
    Log.d("TAG_LOCALE", "LOCALE\t" + locale);
    Log.d("TAG_LOCALE", "DEFAULT\t" + defaultlocale);


    sharedPreferences = context.getSharedPreferences(MAIN_DATA, Context.MODE_PRIVATE);
    sucheck = sharedPreferences.getInt(SUCHECK, 0);
    bildirim = sharedPreferences.getBoolean(BILDIRIM, true);
    rateme = sharedPreferences.getBoolean(RATEME, true);
    cinsiyetdegisim = sharedPreferences.getString(CINSIYET_KEY, getString(R.string.erkek));
    kilogelen = sharedPreferences.getInt(KILO_KEY, 86);
    boygelen = sharedPreferences.getInt(BOY_KEY, 186);
    boyuncgelen = sharedPreferences.getInt(BOYUN_CEV, 36);
    belcgelen = sharedPreferences.getInt(BEL_CEV, 80);
    kalcacgelen = sharedPreferences.getInt(KALCA_CEV, 90);
    yas = sharedPreferences.getInt(YAS_KEY, 21);
    getHAREKET = sharedPreferences.getInt(HAREKET, 0);
    getISTEK = sharedPreferences.getInt(ISTEK, 0);
    gelenMacro = sharedPreferences.getInt(MACRO_KEY, 0);
    gelenFormul = sharedPreferences.getInt(FORMUL_KEY, 0);
    blink_settings = sharedPreferences.getBoolean(BLINK_SETTINGS, true);
    iconcheck = sharedPreferences.getInt(TRACKER_ICON, 0);
    trackercheck = sharedPreferences.getInt(TRACKER_CHECK, 0);
    saat = sharedPreferences.getInt(TRACKER_SAAT, 10);
    dk = sharedPreferences.getInt(TRACKER_DK, 30);
    getsagliklimin = sharedPreferences.getInt(SAGLIKLI_MIN, 0);
    getsagliklimax = sharedPreferences.getInt(SAGLIKLI_MAX, 0);


    sharedpreflistener = new SharedPreferences.OnSharedPreferenceChangeListener() {
        @Override
        public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
            sucheck = sharedPreferences.getInt(SUCHECK, 0);
            bildirim = sharedPreferences.getBoolean(BILDIRIM, true);
            cinsiyetdegisim = sharedPreferences.getString(CINSIYET_KEY, getString(R.string.erkek));
            kilogelen = sharedPreferences.getInt(KILO_KEY, 86);
            boygelen = sharedPreferences.getInt(BOY_KEY, 186);
            boyuncgelen = sharedPreferences.getInt(BOYUN_CEV, 36);
            belcgelen = sharedPreferences.getInt(BEL_CEV, 80);
            kalcacgelen = sharedPreferences.getInt(KALCA_CEV, 90);
            yas = sharedPreferences.getInt(YAS_KEY, 21);
            getHAREKET = sharedPreferences.getInt(HAREKET, 0);
            getISTEK = sharedPreferences.getInt(ISTEK, 0);
            gelenMacro = sharedPreferences.getInt(MACRO_KEY, 0);
            gelenFormul = sharedPreferences.getInt(FORMUL_KEY, 0);
            blink_settings = sharedPreferences.getBoolean(BLINK_SETTINGS, true);
            iconcheck = sharedPreferences.getInt(TRACKER_ICON, 0);
            trackercheck = sharedPreferences.getInt(TRACKER_CHECK, 0);
            saat = sharedPreferences.getInt(TRACKER_SAAT, 10);
            dk = sharedPreferences.getInt(TRACKER_DK, 30);
            rateme = sharedPreferences.getBoolean(RATEME, true);
            getsagliklimin = sharedPreferences.getInt(SAGLIKLI_MIN, 0);
            getsagliklimax = sharedPreferences.getInt(SAGLIKLI_MAX, 0);

        }
    };

`这样继续。我不明白为什么有一些电话。错误原因未写在任何地方。我也使用firebase crashlytics,并且未写入错误原因

enter image description here

enter image description here

图像3

enter image description here

图像4

enter image description here

java android sharedpreferences classcastexception
1个回答
0
投票

我也遇到了这个。问题是这样的:您可能对“ int”和“ String”的值使用相同的标识符(检查常量的类)。并在SharedPreference中检查保存此数据的位置。

© www.soinside.com 2019 - 2024. All rights reserved.