PictureSelector icon indicating copy to clipboard operation
PictureSelector copied to clipboard

#2288(java.lang.IndexOutOfBoundsException at xxx PictureSelectorPreviewFragment.initViewPagerData)的问题依然存在

Open po1xiao opened this issue 3 years ago • 1 comments

Current use version?

当前使用的版本是多少?

v3.10.2

Will this problem occur in demo?

Demo能否复现这问题?

否,线上问题,不必现

Describe the problem or provide an error log?

描述问题或提供错误log?

java.lang.ArrayIndexOutOfBoundsException

length=3; index=-1

java.util.ArrayList.get(ArrayList.java:439)
com.luck.picture.lib.PictureSelectorPreviewFragment.initViewPagerData(PictureSelectorPreviewFragment.java:1079)
com.luck.picture.lib.PictureSelectorPreviewFragment.onViewCreated(PictureSelectorPreviewFragment.java:265)
androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3128)
androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:552)
androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1890)
androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1808)
androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1751)
androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2976)
androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2886)
...

po1xiao avatar Aug 17 '22 11:08 po1xiao

同样遇到

BugMen avatar Aug 18 '22 07:08 BugMen

这个问题3.10.7版本上还存在,我看代码中是这样的:

private void initViewPagerData(ArrayList<LocalMedia> data) {
    viewPageAdapter = createAdapter();
    viewPageAdapter.setData(data);
    viewPageAdapter.setOnPreviewEventListener(new MyOnPreviewEventListener());
    viewPager.setOrientation(ViewPager2.ORIENTATION_HORIZONTAL);
    viewPager.setAdapter(viewPageAdapter);
    SelectedManager.clearPreviewData();
    **//其它逻辑没仔细看,但从报错来看,这里应该再加一个条件  || curPosition < 0**
    if (data.size() == 0 || curPosition > data.size()) {
        onKeyBackFragmentFinish();
        return;
    }
    LocalMedia media = data.get(curPosition);
    bottomNarBar.isDisplayEditor(PictureMimeType.isHasVideo(media.getMimeType())
            || PictureMimeType.isHasAudio(media.getMimeType()));
    tvSelected.setSelected(SelectedManager.getSelectedResult().contains(data.get(viewPager.getCurrentItem())));
    viewPager.registerOnPageChangeCallback(pageChangeCallback);
    viewPager.setPageTransformer(new MarginPageTransformer(DensityUtil.dip2px(getContext(), 3)));
    viewPager.setCurrentItem(curPosition, false);
    sendChangeSubSelectPositionEvent(false);
    notifySelectNumberStyle(data.get(curPosition));
    startZoomEffect(media);
}

po1xiao avatar Jan 19 '23 01:01 po1xiao

已提PR,大佬可以看一下:https://github.com/LuckSiege/PictureSelector/pull/2583

po1xiao avatar Jan 19 '23 03:01 po1xiao