( Peter Doyle のAndroid サポート/互換性ライブラリ (v4、リビジョン 7) のわずかなバリアントを使用して、フラグメントと Google マップの両方を使用するアクティビティをまとめます。Samsung Galaxy Nexus (Ice Cream Sandwich)、Samsung Galaxy S II (Ice Cream Sandwich)、HTC Desire HD (Gingerbread)、HTC Wildfire S (Gingerbread)、およびエミュレーターでアプリをテストしました。アプリはこれらのデバイスで正常に動作します。問題ない。ただし、アプリを公開しましたが、特にアクティビティが再開されたときに、さまざまな電話でこのライブラリが原因で発生したさまざまな種類のエラー レポートが表示されます (つまり、フラグメントを持つアクティビティは、一部の電話では強制終了せずに再開できないようです)。 )。以下に、例として役立つように、いくつかのトリミングされたスタック トレースを貼り付けました。私が持っているデバイスでそれを複製できないので、これには本当にイライラします。
ランタイム例外:
java.lang.RuntimeException:
__アクティビティを開始できません...
java.lang.IllegalStateException:
__指定された子にはすでに親があります。
__最初に子の親で removeView() を呼び出す必要があります。
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1713)
で android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1738)
で android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3024)
...
が原因: java.lang.IllegalStateException:
__指定された子には既に親があります。
__最初に子の親で removeView() を呼び出す必要があります。
android.view.ViewGroup.addViewInner (ViewGroup.java:1976) で
android.view.ViewGroup.addView(ViewGroup.java:1871) で
...
IllegalStateException
java.lang.IllegalStateException:
__Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(Unknown Source)
at android.support.v4.app.FragmentManagerImpl.beginTransaction(Unknown Source)
...
IllegalStateException
java.lang.IllegalStateException:
__Fragment cw{4067d550} がアクティビティに接続されていません
...
ランタイム例外
java.lang.RuntimeException:
__アクティビティを再開できません... android.app.ActivityThread.performResumeActivity(ActivityThread.java:2124)での
java.lang.NullPointerException android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2139) .. .