我已经使用(Peter Doyle'sAndroid 支持/兼容性库(v4,修订版 7)的轻微变体,用于组合使用 Fragments 和 Google Maps 的 Activity。我已经在三星 Galaxy Nexus(冰淇淋三明治)、三星 Galaxy S II(冰淇淋三明治)、HTC Desire HD(姜饼)、HTC Wildfire S(姜饼)和模拟器上测试了该应用程序。该应用程序在这些设备上运行良好。没问题。但是,我已经发布了该应用程序,并且在各种手机上看到了由该库引起的不同类型的错误报告,尤其是在恢复 Activity 时(即,如果没有强制关闭,似乎具有 Fragments 的 Activity 无法在某些手机上恢复自身)。下面我粘贴了一些修剪过的堆栈跟踪作为示例。对此真的很恼火,因为我无法在我拥有的设备上复制它。
运行时异常:
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)
...
非法状态异常
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)
...
非法状态异常
java.lang.IllegalStateException:
__Fragment cw{4067d550} 未附加到 Activity
...
运行时异常
java.lang.RuntimeException:
__Unable to resume activity...
java.lang.NullPointerException
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2124)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2139)
.. .