1

水平スクロール ビュー クラスを初期化しようとすると、次のエラーが発生します。

java.lang.NoClassDefFoundError: Could not initialize class android.view.GestureDetector

private synchronized void initView() {
        mLeftViewIndex = -1;
        mRightViewIndex = 0;
        mDisplayOffset = 0;
        mCurrentX = 0;
        mNextX = 0;
        mMaxX = Integer.MAX_VALUE;
        mScroller = new Scroller(getContext());
        mGesture = new GestureDetector(getContext(), mOnGesture);
    }

エラーは次の行までさかのぼります。

mGesture = new GestureDetector(getContext(), mOnGesture);

mGesture は非公開の GestureDetector です。

private GestureDetector mGesture;

私のUI

4

1 に答える 1

1

とにかく編集モードでは必要ないので、ヒントにあるようにしてください:

private synchronized void initView() {
    mLeftViewIndex = -1;
    mRightViewIndex = 0;
    mDisplayOffset = 0;
    mCurrentX = 0;
    mNextX = 0;
    mMaxX = Integer.MAX_VALUE;
    if (!this.isInEditMode()) {
        mScroller = new Scroller(getContext());
        mGesture = new GestureDetector(getContext(), mOnGesture);
    }
}

そして、使用する前に、コードで mGesture と mCcroller が null であることを確認してください。

于 2013-05-31T12:00:08.593 に答える