错误膨胀类片段引起:重复id 0x7f06003e .....与另一个com.google.android.gms.maps.MapFragment片段

时间:2014-07-14 07:27:53

标签: android android-fragments google-maps-android-api-2

我尝试在我的应用程序中显示地图,第一次启动我的应用程序,一切都很顺利,直到我也要去另一个显示Map的页面。 这是我的代码:

public class PKN_Frag_SummaryKabupaten extends Fragment{
private GoogleMap map;
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle saveInstanceState) {
        View Sum_Kab = inflater.inflate(R.layout.modul2_kabupaten, container,
                false);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
map.moveCamera(CameraUpdateFactory.newLatLngZoom(MAP_PUPI, 15));
        map.animateCamera(CameraUpdateFactory.zoomTo(0), 2000, null);
return Sum_Kab;

    }
    private GoogleMap getGoogleMap() {
         if (map == null && getActivity() != null && getActivity().getFragmentManager()!= null) {
             MapFragment smf = (MapFragment)getActivity().getFragmentManager().findFragmentById(R.id.map);
                if (smf != null) {
                    map = smf.getMap();
                }
            }
            return map;
    }
    @Override
    public void onDestroyView() 
     {
        super.onDestroyView(); 
        Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));  
        FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
        ft.remove(fragment);
        ft.commit();
    }

这是我的地图代码:

 <fragment
                android:id="@+id/map"
                android:layout_width="fill_parent"
                android:layout_height="match_parent"
                android:layout_margin="10dp"
                class="com.google.android.gms.maps.MapFragment"/>

这就是logcat所说的:

07-14 14:21:20.186: E/AndroidRuntime(29586): FATAL EXCEPTION: main
07-14 14:21:20.186: E/AndroidRuntime(29586): android.view.InflateException: Binary XML file line #251: Error inflating class fragment
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at id.go.kpp.aplikasipupi.pkn.PKN_Frag_SummaryKabupaten.onCreateView(PKN_Frag_SummaryKabupaten.java:115)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:829)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.app.BackStackRecord.run(BackStackRecord.java:635)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1401)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.app.FragmentManagerImpl$1.run(FragmentManager.java:426)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.os.Handler.handleCallback(Handler.java:615)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.os.Looper.loop(Looper.java:137)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.app.ActivityThread.main(ActivityThread.java:4895)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at java.lang.reflect.Method.invokeNative(Native Method)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at java.lang.reflect.Method.invoke(Method.java:511)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at dalvik.system.NativeStart.main(Native Method)
07-14 14:21:20.186: E/AndroidRuntime(29586): Caused by: java.lang.IllegalArgumentException: Binary XML file line #251: Duplicate id 0x7f06003e, tag null, or parent id 0x7f06003d with another fragment for com.google.android.gms.maps.MapFragment
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.app.Activity.onCreateView(Activity.java:4819)
07-14 14:21:20.186: E/AndroidRuntime(29586):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
07-14 14:21:20.186: E/AndroidRuntime(29586):    ... 20 more

我不知道我的错在哪里,因为当我遇到extend Activity时,没有错误或出错,是否有人可以帮助我?

更新

这是我使用MapView后发生的事情

enter image description here

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题并设法通过在我的片段中添加MapView来跟随Raghunandad的答案来修复它,如本答案stackoverflow.com/questions/20919048/中所述。我最初也有一个空白的mapview,因为我没有设置mapView.onResume(); mapView.onDestroy();和mapView.onLowMemory();

我希望它也适合你。

  @Override
    public void onResume() {
        mapView.onResume();
        super.onResume();
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
    }
    @Override
    public void onLowMemory() {
        super.onLowMemory();
        mapView.onLowMemory();
    }