Android java.lang.Long не может быть приведен к java.lang.String - PullRequest
0 голосов
/ 03 июля 2018

Хорошо, поэтому я храню длинную в своих общих настройках, используя

e.putLong("startTime", SystemClock.uptimeMillis());

, и я получаю его из настроек общего доступа, таких как

SHARED_PREFS = context.getSharedPreferences(LOCAL_PREF, MODE_PRIVATE);
long startTime = SHARED_PREFS.getLong("startTime", 0L); <-- Stack trace points to this line.

но я получаю эту ошибку на некоторых устройствах и не знаю почему, я вообще не пытаюсь привести ее к String.

java.lang.Long cannot be cast to java.lang.String

Все, что я нахожу, указывает на попытку установить это значение String, и я вообще не пытаюсь этого сделать, я пытаюсь использовать значение long напрямую.

** ОБНОВЛЕНИЕ STACK TRACE **

Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
        at android.app.SharedPreferencesImpl.getString(SharedPreferencesImpl.java:255)
        at com.tech.utility.Tools.refreshPrefs(Tools.java:193)
        at com.tech.activity.Menu_dashboard.onStart(Menu_dashboard.java:762)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1340)
        at android.app.Activity.performStart(Activity.java:7191)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2920)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
        at android.app.ActivityThread.-wrap11(Unknown)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6940)
        at java.lang.reflect.Method.invoke(Method.java:-2)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

1 Ответ

0 голосов
/ 03 июля 2018

Если бы вы прочитали документы , вы бы прочитали, что метод getLong будет:

Выдает ClassCastException, если есть предпочтение с этим именем, которое не является длинным.

Итак, в другом месте приложения вы должны были позвонить:

e.putLong("startTime", "someString");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...