android - 同时点击两张Subsampling scale图片会导致Android崩溃

标签 android debugging

点击两个子采样比例 ImageView 后...当我同时点击它们时,出现此错误:

09-18 12:37:17.807  22777-22777/... E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: ..., PID: 22777
java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
        at android.support.v4.widget.ViewDragHelper.shouldInterceptTouchEvent(ViewDragHelper.java:1004)
        at android.support.v4.widget.DrawerLayout.onInterceptTouchEvent(DrawerLayout.java:868)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1873)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2230)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1973)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2230)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1973)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2230)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1973)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2069)
        at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
        at android.app.Activity.dispatchTouchEvent(Activity.java:2531)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2017)
        at android.view.View.dispatchPointerEvent(View.java:8004)
        at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4136)
        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3990)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3548)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3598)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3567)
        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3674)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3575)
        at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3731)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3548)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3598)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3567)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3575)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3548)
        at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5817)
        at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5797)
        at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5768)
        at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5897)
        at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
        at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
        at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176)
        at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:5870)
        at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:5916)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
        at android.view.Choreographer.doCallbacks(Choreographer.java:574)
        at android.view.Choreographer.doFrame(Choreographer.java:542)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5246)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:780)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:596)
        at dalvik.system.NativeStart.main(Native Method)

布局:

<FrameLayout
    android:id="@+id/idContainer"
    android:layout_width="match_parent"
    android:padding="16dp"
    android:layout_height="match_parent" >
    <com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
        android:id="@+id/idImage"
        android:background="@color/gsd_bg_darkest"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center" />

    <ProgressBar
        android:id="@+id/idProgress"
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />
</FrameLayout>

代码:

// uri is a string with the URL
// the view, is the view where are the images. The setBusy will delete the spinner from it


private SubsamplingScaleImageView.OnImageEventListener createLoadingListener(final View side){
        return new SubsamplingScaleImageView.OnImageEventListener() {
            @Override
            public void onReady() {

            }

            @Override
            public void onImageLoaded() {
                setBusy(side, false);
            }

            @Override
            public void onPreviewLoadError(Exception e) {

            }

            @Override
            public void onImageLoadError(Exception e) {

            }

            @Override
            public void onTileLoadError(Exception e) {

            }
        };
    }

photoL = (SubsamplingScaleImageView) sideLeft.findViewById(R.id.idImage);
photoR = (SubsamplingScaleImageView) sideRight.findViewById(R.id.idImage);

photoL.setImage(ImageSource.uri(uri));
photoL.setOnImageEventListener(createLoadingListener(sideLeft));

我是否在 Android 代码中发现了错误,或者我应该怎么做才能找出真正的问题所在?非常感谢任何提示(也只是为了澄清问题)。

最佳答案

关于android - 同时点击两张Subsampling scale图片会导致Android崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32653644/

相关文章:

ruby delayed_job - 堆栈级别太深

android - 无法访问 Context.USAGE_STATS_SERVICE

javascript - React-Native:后退按钮设置保留在所有组件上

c++ - gdb 自动进入内联函数

javascript - 如何检查我的 iPhone Safari 上运行的 Ajax 请求的状态?

linux - QEMU 调试::警告:TCG 不支持请求的功能:CPUID.01H:ECX

c - 调试将 SIGINT 与 gdb 结合使用的程序

android - 当我旋转屏幕时,progressDialog 停止更新

android - mp4parser 在 Android Studio 的设备上运行,但在手动安装 APK 时崩溃

java - GSOn 错误 解析 JSON 响应时需要一个字符串,但结果是 BEGIN_OBJECT