4

フリングジェスチャ認識にviewflipperを使用していますが、2.0以前ではすべて正常に機能しますが、2.2および2.1では、以下の「java.lang.IllegalArgumentException:レシーバーが登録されていません:android.widget.ViewFlipper」が完全なデバッグトレースであるため、例外がスローされます。


java.lang.IllegalArgumentException: Receiver not registered: android.widget.ViewFlipper$1@452f8398
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.app.ActivityThread$PackageInfo.forgetReceiverDispatcher(ActivityThread.java:793)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:814)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:331)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.widget.ViewFlipper.onDetachedFromWindow(ViewFlipper.java:104)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.view.View.dispatchDetachedFromWindow(View.java:6033)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1158)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.view.ViewRoot.dispatchDetachedFromWindow(ViewRoot.java:1630)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.view.ViewRoot.doDie(ViewRoot.java:2671)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.view.ViewRoot.die(ViewRoot.java:2641)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:218)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.view.Window$LocalWindowManager.removeViewImmediate(Window.java:436)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3684)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3789)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.app.ActivityThread.access$2400(ActivityThread.java:125)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2037)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.os.Looper.loop(Looper.java:123)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at android.app.ActivityThread.main(ActivityThread.java:4627)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at java.lang.reflect.Method.invokeNative(Native Method)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at java.lang.reflect.Method.invoke(Method.java:521)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-19 11:33:06.825: ERROR/AndroidRuntime(393):     at dalvik.system.NativeStart.main(Native Method)

このバグ6191に関連するGoogleの問題があります。

そして、そこに記載されているソリューションは、コードを介してViewFlipperを作成している場合にのみ機能するようですが、私の場合、レイアウトファイルであるXMLでViewFlipperを使用しているため、ViewFlipperを拡張するために記載されているソリューションを使用できません。働くために。

私はこれにひどく立ち往生しています。どんな助けでも本当にありがたいです。

以下は私のレイアウトコードです。



<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/flipper"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/parentView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/listingBG">
        <TextView 
                android:id="@+id/statusMessage" 
                android:layout_height="fill_parent" 
                android:layout_width="fill_parent"
                style="@style/TextLabel.Normal" android:visibility="gone" 
                android:text="No result" android:padding="15dp" android:gravity="center_horizontal"/>
        <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbars="none" android:id="@+id/scrollView" >
            <RelativeLayout android:id="@+id/parentItemView" android:layout_height="wrap_content" android:layout_width="fill_parent">
            </RelativeLayout>
        </ScrollView>
    </LinearLayout>
</ViewFlipper>

4

2 に答える 2

12

ViewFlipperを拡張し、xmlレイアウトファイルで新しいクラスのフルネーム(パッケージを含む)を使用できます。

<com.yourpackage.FixedViewFlipper> ... </com.yourpackage.FixedViewFlipper>

res/layout-v7およびのようなレイアウトディレクトリ名を使用して、2.1および2.2バージョン用の個別のxmlファイルを作成することもできますres/layout-v8

于 2010-09-19T08:02:07.347 に答える
0

この質問で説明したのと同じ問題がありました。

いくつか検索した後、この問題を解決したように見えるこの質問を見つけました。 キーボード スライドでアプリがクラッシュするのはなぜですか?

于 2011-06-17T18:41:21.713 に答える