10

タブアクティビティによってホストされるアクティビティがあります。画面の向きを変更すると、アプリがクラッシュします。

02-14 21:01:35.825: E/AndroidRuntime(9424): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.testapp/com.example.testapp.MainActivity}
java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.AbsListView$SavedState
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2194)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2229)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3791)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.app.ActivityThread.access$700(ActivityThread.java:139)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.os.Looper.loop(Looper.java:154)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.app.ActivityThread.main(ActivityThread.java:4945)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at java.lang.reflect.Method.invokeNative(Native Method)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at java.lang.reflect.Method.invoke(Method.java:511)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at dalvik.system.NativeStart.main(Native Method)
02-14 21:01:35.825: E/AndroidRuntime(9424): Caused by: java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.AbsListView$SavedState
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.widget.AbsListView.onRestoreInstanceState(AbsListView.java:1596)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.view.View.dispatchRestoreInstanceState(View.java:9977)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.view.ViewGroup.dispatchThawSelfOnly(ViewGroup.java:2346)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.widget.AdapterView.dispatchRestoreInstanceState(AdapterView.java:778)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2332)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2332)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2332)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2332)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2332)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2332)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2332)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2332)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2332)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.view.View.restoreHierarchyState(View.java:9955)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1671)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.app.Activity.onRestoreInstanceState(Activity.java:939)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.app.TabActivity.onRestoreInstanceState(TabActivity.java:84)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.app.Activity.performRestoreInstanceState(Activity.java:911)
02-14 21:01:35.825: E/AndroidRuntime(9424):     at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1132)
   02-14 21:01:35.825: E/AndroidRuntime(9424):  at    android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2172)
  02-14 21:01:35.825: E/AndroidRuntime(9424):   ... 12 more

マニフェストのこの行は役に立ちません:

android:configChanges="orientation|keyboardHidden"

そしてもう1つ:私のアクティビティでは、https://github.com/dinocore1/DevsmartLibのカスタムビュー(水平リストビュー)を使用しています-Android

このカスタムビューがなくてもアプリは正常に動作していますが、使用する必要があります。

4

2 に答える 2

13

残念ながら、私は画像を投稿するのに十分な評判がありません。

XMLファイルは画像ではなく、レイアウトはXMLファイルです。

最初のタブからlistviewを削除し、2番目のタブからHorizo​​ntalListViewを削除すると、問題なく向きを変更できることがわかりました。

これに加えて、症状は、これら2つのウィジェットに同じandroid:id値の名前を付けたことを示しています。保存された状態が同じではないため、これは機能しません。両方を同じクラスにするか、別の名前を付けます。

于 2013-02-15T12:37:54.723 に答える
0

CommonsWareが言っていることに注意してください、彼はマインドリーダーです:)


これはアーカイブのためにここに置いておきます。

これで行く:

android.view.AbsSavedState$1をandroid.widget.AbsListView$SavedStateにキャストすることはできません

  1. インポートをチェックして、適切なクラスを使用しているかどうかを確認してください
  2. 変換前にinstanceofチェックを実行します
  3. Javaコードを貼り付けます
于 2013-02-14T21:54:20.173 に答える