iielse / imageviewer

A simple and customizable Android full-screen image viewer 一个简单且可自定义的Android全屏图像浏览器

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

线上的包报了一个崩溃,在android 9 11 12上偶现,下面是堆栈信息

HeJingWei opened this issue · comments

Fatal Exception: java.util.ConcurrentModificationException
at java.util.ArrayList$SubList.size(ArrayList.java:1057)
at androidx.paging.PagePresenter.accessHintForPresenterIndex(PagePresenter.java:122)
at androidx.paging.PagingDataDiffer.get(PagingDataDiffer.java:248)
at androidx.paging.AsyncPagingDataDiffer.getItem(AsyncPagingDataDiffer.java:220)
at androidx.paging.PagingDataAdapter.getItem(PagingDataAdapter.java:235)
at com.github.iielse.imageviewer.adapter.ImageViewerAdapter.onBindViewHolder(ImageViewerAdapter.java:37)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7254)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7337)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6194)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6460)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6300)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6296)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2330)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1631)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1591)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:668)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4309)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4012)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4578)
at android.view.View.layout(View.java:22881)
at android.view.ViewGroup.layout(ViewGroup.java:6400)
at androidx.viewpager2.widget.ViewPager2.onLayout(ViewPager2.java:527)
at android.view.View.layout(View.java:22881)
at android.view.ViewGroup.layout(ViewGroup.java:6400)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22881)
at android.view.ViewGroup.layout(ViewGroup.java:6400)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22881)
at android.view.ViewGroup.layout(ViewGroup.java:6400)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22881)
at android.view.ViewGroup.layout(ViewGroup.java:6400)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:791)
at android.view.View.layout(View.java:22881)
at android.view.ViewGroup.layout(ViewGroup.java:6400)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3527)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2991)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1997)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8308)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1125)
at android.view.Choreographer.doCallbacks(Choreographer.java:947)
at android.view.Choreographer.doFrame(Choreographer.java:872)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1110)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:7773)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)

是在ImageViewerAdapter的onBindViewHolder 的 val item = getItem(position) 报错的 ,方便看下什么原因吗

commented

试下 . 2.1.21. 看起来是界面正在绑定数据的时候数据源发生了变化导致的.

commented

@HeJingWei 怎么样老哥, 好了吗

最新的版本firebase没有上报了,我看源码你用try catch包起来了

正好有个问题再请教一下,我用了一张很长的图加载了,但是放大到一定等比例就放不大了,也撑不满屏幕的宽度,这是原图 https://community-oss.epal.gg/dev/community/34/16673578998626611.jpeg

commented

将你提供的url导入demo工程,并没有发现 撑不满屏幕的宽度 的问题

不好意思,我解决了,photoview有设置最大放大比例的公共方法