4

我使用viewflipper進行手勢識別時,一切正常工作2.0和以前,但在2.2和2.1它引發異常爲「java.lang.IllegalArgumentException:Receiver not registered: android.widget.ViewFlipper「下面是完整的調試跟蹤。Viewflipper接收器未註冊錯誤,同時在2.1和2.2方向更改


java.lang.IllegalArgumentException: Receiver not registered: [email protected] 
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) 

There is issue on Google related to this bug 6191.

,並在那裏提到的解決方案似乎是,如果你是通過代碼,但在我的情況我在XML使用ViewFlipper創建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> 

回答

12

您可以在XML佈局文件擴展ViewFlipper並使用新類的全名(含包裝):

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

你甚至可以創建不同的XML文件2.1和2.2版本使用佈局目錄名稱,如res/layout-v7res/layout-v8

+0

感謝這似乎工作,將張貼任何事情,如果休息。 – Yogesh 2010-09-19 08:39:33

+0

我希望更多的人開始接受答案。謝謝凱文。 – 2011-04-07 11:27:48

+0

+1爲未被接受的答案:) – 2011-05-16 12:58:39