SherlockGougou / BigImageViewPager

🔥🔥🔥 BigImage ImageView ViewPager 支持超长图、超大图的图片浏览器,优化内存,支持手势放大、下拉关闭、查看原图、加载百分比、保存图片等功能。
Other
2.14k stars 248 forks source link

kotlin 简单封装 调用后 bugly 多次捕捉到 ArrayIndexOutOfBoundsException #196

Closed houkhan closed 8 months ago

houkhan commented 8 months ago

我的代码如下

object ImagePreviewUtils {

    /**
     * 加载一张图片
     */
    fun show(context: Context, image: String?, index: Int = 0) {
        image?.let { imageURl ->
            if (imageURl.isNotEmpty()) {
                instance(context).setImage(imageURl).setIndex(index).start()
            }
        }
    }

    /**
     * 加载多张图片
     */
    fun show(context: Context, images: MutableList<String>?, index: Int = 0) {
        images?.let { imagesUrl ->
            if (imagesUrl.isNotEmpty()) {
                instance(context).setImageList(images).setIndex(index).start()
            }
        }
    }

    /**
     * 统一使用 管理 ImagePreview
     */
    private fun instance(context: Context): ImagePreview {
        return ImagePreview.instance.setContext(context).setShowDownButton(false).setShowCloseButton(true).setEnableDragClose(false)
    }
}

bugly 报错日志如下

java.lang.RuntimeException:Unable to start activity ComponentInfo{com.xxx.xxx/cc.shinichi.library.view.ImagePreviewActivity}: java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1

2
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3805)
3
......
4
Caused by:
5
java.lang.ArrayIndexOutOfBoundsException:length=10; index=-1
6
java.util.ArrayList.get(ArrayList.java:439)
7
cc.shinichi.library.view.ImagePreviewActivity.onCreate(ImagePreviewActivity.kt:22)
8
android.app.Activity.performCreate(Activity.java:8508)
9
android.app.Activity.performCreate(Activity.java:8472)
10
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1417)
11
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3786)
12
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3951)
13
android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
14
android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
15
android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
16
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2405)
17
android.os.Handler.dispatchMessage(Handler.java:106)
18
android.os.Looper.loopOnce(Looper.java:211)
19
android.os.Looper.loop(Looper.java:300)
20
android.app.ActivityThread.main(ActivityThread.java:8152)
21
java.lang.reflect.Method.invoke(Native Method)
22
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
23
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
houkhan commented 8 months ago

是我不能这么使用吗 还是什么原因导致的呢

SherlockGougou commented 8 months ago
image