Android Long不能转换为java.lang.Integer SharedReference

Android Long不能转换为java.lang.Integer SharedReference,android,kotlin,sharedpreferences,Android,Kotlin,Sharedpreferences,一段非常简单的代码,有时会返回ClassCastException。 在我的代码中,没有一个地方是我长期保存在这个属性中的 Fatal Exception: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer at android.app.SharedPreferencesImpl.getInt(SharedPreferencesImpl.java:307) 也许有人知道为什么会

一段非常简单的代码,有时会返回ClassCastException。 在我的代码中,没有一个地方是我长期保存在这个属性中的

Fatal Exception: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
   at android.app.SharedPreferencesImpl.getInt(SharedPreferencesImpl.java:307)
也许有人知道为什么会这样

var numberOfRepayment
    get() = sharedPrefs.getInt(UserSetting.NUMBER_OF_REPAYMENT.value, 0)
    set(value) {
        editor.run { putInt(UserSetting.NUMBER_OF_REPAYMENT.value, value).apply() }
    }

我个人从未遇到过这个问题,但通过Crashlytics查看它

我认为您正在输入Long值并检索Int值。上面crashingI提到我没有把long值转换成Int,它甚至不允许我这么做你的UserSetting.NUMBER\u OF_returnation.value有多少个字符?是不是因为你把
UserSetting.NUMBER\u OF_returnation.value
的值作为键传递
SharedReferences.Editor#Putin
需要传入两个参数-第一个是要修改的首选项键(类型
String
),第二个是首选项的新值(类型
int
)。有关更多信息,请参阅。我想在下一次更新中,您可以捕获异常,然后尝试将首选项作为字符串获取并重新播放,以便它显示在播放控制台中供您调试。我认为您正在输入Long值并检索Int值。上面crashingI提到我没有把long值转换成Int,它甚至不允许我这么做你的UserSetting.NUMBER\u OF_returnation.value有多少个字符?是不是因为你把
UserSetting.NUMBER\u OF_returnation.value
的值作为键传递
SharedReferences.Editor#Putin
需要传入两个参数-第一个是要修改的首选项键(类型
String
),第二个是首选项的新值(类型
int
)。有关更多信息,请参阅。我想在下一次更新中,您可以捕获异常,然后尝试以字符串形式获取首选项,并重新播放它,以便它显示在播放控制台中供您调试。