Java автобокс длинные и целочисленные ошибки - PullRequest
1 голос
/ 14 октября 2019

Когда я приведу 0 (ноль) к Long или 0 (ноль) к Integer, устройство преобразует его в 0 напрямую, как и ожидалось. Через некоторое время устройство начинает упаковывать длинное значение от 0 до 8 длинных значений и от 0 int до 2 целочисленных значений. Устройство делает ту же ошибку при чтении длинных и целых чисел из базы данных.

Эта проблема начала возникать на устройстве "UBX V500S" с ПЗУ SafeDroid из Китая. Информация о сборке устройства находится здесь:

BOARD=unknown
BOOTLOADER=unknown
BRAND=alps
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=vz6737t_66_a_n
DISPLAY=SQ31T_P1_00_XX_AU1616_U_R_181220_01
FINGERPRINT=alps/full_vz6737t_66_a_n/vz6737t_66_a_n:7.0/NRD90M/1545278007:user/dev-keys
HARDWARE=mt6735
HOST=u-r730-1
ID=SQ31T_P1_00_XX_AU1616_U_R_181220_01
IS_DEBUGGABLE=false
IS_EMULATOR=false
MANUFACTURER=UBX
MODEL=SQ31T
PERMISSIONS_REVIEW_REQUIRED=false
PRODUCT=full_vz6737t_66_a_n
PROJECT=SQ31T
PWV_CUSTOM_CUSTOM=XX
PWV_HAVE_SCANNER=false
RADIO=unknown
SERIAL=---
SUPPORTED_32_BIT_ABIS=[armeabi-v7a, armeabi]
SUPPORTED_64_BIT_ABIS=[arm64-v8a]
SUPPORTED_ABIS=[0 = "arm64-v8a", "armeabi-v7a", "armeabi"]
TIME=1545277986000
TYPE=user
UNKNOWN=unknown
USER=Build

Это результат первого запуска:

(Long) 0L -> 0

first launch

Это результат, когда устройство начинает совершать ошибки:

(Long) 0L -> 8

boxing problem

Это результат, когда устройство начинает совершать ошибки:

(Integer) 0 -> 2

boxing problem

Добавление:

Когда устройство работает правильно, когда я проверял значения карты курсора базы данных SQLite,они выглядят правильно. « id » столбец указывает на индекс 0, « last_sycned_at » указывает на 2 : before_map_change

Когдаустройство начинает делать ошибки. Я также видел, что значения карты изменены, столбец " id " указывает на индекс 2, столбец " last_sycned_at " также указывает на 2 : after_map_change

...