次のような状況でアプリがクラッシュする以外は、2つのボタンとスピナーを持つダイアログが表示されます: 。開始アクティビティ 2.アクティビティ:: showDialogでダイアログを表示する(onCreateDialogで作成) 3.スピナーをクリックしてリストを表示します 4.スピナーがAlertDialogを表示 5.デバイスを回転させます 6.クラッシュIllegalArgumentExceptionが発生しましたスピナーが開いている(リストアップしている)デバイスを回転させるとダイアログのAndroidスピナーがクラッシュする
アクティビティが消えてしまったことがわかりました。また、ダイアログが消えてしまいましたが、スピナーのAlertDialogが残っています。私はSpinner AlertDialogを却下するだけですが、Spinnerクラスのプライベートメンバーです(私はAndroidのソースコードをチェックしました)ので、アクセスする方法はありません。
あなたが活動にスピナーを移動する場合は、あなたが得る: 1.開始アクティビティをスピナー上 2.クリックし、リストを表示するように 3.スピナーはAlertDialog を置きます。4.デバイス 5.スピナーを回転させますAlertDialogが 6.活動は、私はどちらか一方のみと結論付けることができます
を回転表示されなくなり:あなたは、単にダイアログ(またはAlertDialog)上にスピナーを置くことになっていない 1、または 2.ダイアログのバグがありますまたはアクティビティ
誰もがこの問題にどのような知恵を持っていますか?マニフェストで
スタックトレース? onRestoreの後にnull変数で何かをしようとしているように聞こえます。 – ethrbunny
'スレッド[<1>メイン](サスペンド(例外はIllegalArgumentException))\t \t ViewRoot.doDie()行:2695 \t \t ViewRoot.handleMessage(メッセージ)ライン:1970 \t \t ViewRoot(ハンドラ).dispatchMessage(メッセージ)ライン:99 \t \t Looper.loop()行:144 \t \t ActivityThread.main(文字列[])ライン:4937 \t \t Method.invokeNative(オブジェクト、オブジェクト[]、クラス、クラス[]、クラス、INT、ブール値)行:使用不可[ネイティブメソッド] \t \t Method.invoke(オブジェクト、オブジェクト...)ライン:521 \t \t ZygoteInit $ MethodAndArgsCaller.run()行:868 \t \t ZygoteInit.main(String []型)ライン:626 \t \t NativeStart.main(文字列[])行:利用不可[ネイティブメソッド] ' – haemish
残念ながら、バッククォートは改行を保持していないようです。私は画面の向きをロックすることで問題を回避しましたが、明らかにそれは汚れたハックであり、問題の1つの表現しか覆いません。 Spinner AlertDialogは、元のActivity(回転前)にアクセスしようとしている可能性がありますが、プライベートメンバーであるため、何をすべきか分かりません。次のステップは、ActivityとAlertDialogのコードを掘り下げることですが、今は時間がありません。 – haemish