我有以下布局。让我们称之为 mapFragment.xml
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/fragmentId"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"
android:orientation="vertical">
<com.google.android.gms.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapIdfragmentId"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</fragment>
它用于选项卡视图。这是 3 中的第一个选项卡。加载选项卡视图时,这是加载的第一个选项卡。这里没有问题。如果我转到第二个选项卡然后返回 - 我再次没有问题。但是如果我转到第三个选项卡并尝试返回(无论是第二个还是第一个选项卡)然后我在第一个选项卡的 onCreate 方法中有一个 NPE
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View v = inflater.inflate(R.layout.mapFragment, container, false);
return v;
}
NPE 发生在第二行 - View v = .... 异常的根本原因是
Caused by: java.lang.IllegalArgumentException: Binary XML file line #7: Duplicate id 0x7f040005, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.MapFragment
E/AndroidRuntime(17423): at android.app.Activity.onCreateView(Activity.java:4722)
我正在使用 Sherlock 库,并且设备在 Android v2.2.2 上运行
PS:这里建议的解决方案 - Duplicate ID, tag null, or parent id with another fragment for com.google.android.gms.maps.MapFragment解决了问题,但之后地图完全冻结:(