Комнатные данные с подкачкой с получением IndexOutOfBoundsException на некоторых устройствах - PullRequest
3 голосов
/ 06 апреля 2019

Я использую библиотеку подкачки с комнатными данными, в некоторых устройствах иногда я получаю IndexOutOfBoundsException Index вне границ - пройденная позиция = 75, старый размер списка = 75 (всегда с размером 75, ни одна из моих баз данных не имеет фиксированного размера75)

Проблема в том, что журнал отображается скорее как внутренняя ошибка, чем ошибка моего приложения

Неустранимая исключительная ситуация: java.lang.IndexOutOfBoundsException: индексировать за пределами - пройденная позиция= 75, старый размер списка = 75

в androidx.recyclerview.widget.DiffUtil $ DiffResult.convertOldPositionToNew (DiffUtil.java:672)
в androidx.paging.PagedStorageDiffHelper.transformAnchorSelrageDH2 ())
в androidx.paging.AsyncPagedListDiffer.latchPagedList (AsyncPagedListDiffer.java:382)
в androidx.paging.AsyncPagedListDiffer $ 2 $ 1.run (AsyncPagedListDiffer.java:345 and.(Handler.java:790)
на android.os.Handler.dispatchMessage (Handler.java:99)
на android.os.Looper.loop (Looper.java:164)
в android.app.ActivityThread.main (ActivityThread.java:6543)
в java.lang.reflect.Method.invoke (Method.java)
в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:440)
в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:810)

Есть ли обходной путь для этого?или что-то связано с моим приложением?

1 Ответ

2 голосов
/ 03 июля 2019

После многих дней изучения варианта, который вызывает эту ошибку, это:

protected val pagedListConfig: PagedList.Config = PagedList.Config.Builder()
        .setEnablePlaceholders(true) . <------------ set to false 
        .setPrefetchDistance(PREFETCH_DISTANCE_SIZE)
        .setPageSize(DATABASE_PAGE_SIZE)
        .setInitialLoadSizeHint(INITIAL_DATABASE_PAGE_SIZE)
        .build()

, поэтому просто установите setEnablePlaceholders(false), чтобы избежать случайного изменения этого случая, заметив, что это повлияет на прокрутку, заставляя ее мигать при загрузкебольше данных, пока не починить от андроида sdk.

...