3

내 애플리케이션에서 Google지도 버전 2를 조각으로 사용합니다. 프래그먼트가있는 응용 프로그램 탭 호스트 (완전히 4 개의 탭). 지도 사용법은 Tab1-> Searchome (조각 클래스) -> fragment2 (조각 클래스) -> SearchResultMap (조각 클래스)에 있습니다.Android - Google지도 v2 또는 SupportMapFragment를 두 번째로 열 때 오류가 발생했습니다.

내 문제는지도를 보여줍니다 내가 SearchResultMap 클래스에 방문 처음이지만 레이아웃 XML을 Caused by: java.lang.IllegalArgumentException: Binary XML file line #62: Duplicate id 0x7f050043, tag null, or parent id 0x0 with another fragment for com.google.android.gms.maps.SupportMapFragment

내 전체 코드와 함께 추락 한 두 번째 시간 :

SearchResultMap.java :

public class SearchResultMap extends Fragment { 

    private GoogleMap mMap; 

    private View fragmentView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     fragmentView = inflater.inflate(R.layout.map_layout, container, false); 

     FragmentManager myFM = getActivity().getSupportFragmentManager(); 

     final SupportMapFragment myMAPF = (SupportMapFragment) myFM 
       .findFragmentById(R.id.map); 

     mMap = myMAPF.getMap(); 

     mMap.addMarker(new MarkerOptions() 
       .position(new LatLng(xxxxxx, xxxxxxxx)) 
       .title("Current Location") 
       .icon(BitmapDescriptorFactory 
         .fromResource(R.drawable.ball_pointer)) 
       .snippet("Accuracyt to 20 meters")); 


     return fragmentView; 
    } 

} 

map_layout.xml :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:background="#333333" > 

     <ImageButton 
      android:id="@+id/map_back" 
      android:layout_width="25dp" 
      android:layout_height="30dp" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="15dp" 
      android:background="@drawable/back_button" /> 

     <TextView 
      android:id="@+id/search_txt" 
      android:layout_width="170dp" 
      android:layout_height="30dp" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="5dp" 
      android:layout_toRightOf="@+id/map_back" 
      android:background="@drawable/rounded_corner" 
      android:hint="Search" 
      android:textColor="#000000" /> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignTop="@+id/search_txt" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="10dp" 
      android:layout_toRightOf="@+id/search_txt" > 

      <Button 
       android:id="@+id/search_go" 
       style="?android:attr/buttonStyleSmall" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:textSize="13sp" 
       android:text="Search" /> 

      <Button 
       android:id="@+id/search_cancel" 
       style="?android:attr/buttonStyleSmall" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:textSize="13sp" 
       android:text="Cancel" /> 
     </LinearLayout> 
    </RelativeLayout> 

    <fragment 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</LinearLayout> 

전체 로그 고양이 :

FATAL EXCEPTION: main 
android.view.InflateException: Binary XML file line #62: Error inflating class fragment 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:587) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
at com.fssd.spot.search.SearchResultMap.onCreateView(SearchResultMap.java:35) 
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086) 
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1877) 
at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1492) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947) 
at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1280) 
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:672) 
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460) 
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440) 
at android.os.Handler.handleCallback(Handler.java:587) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:130) 
at android.app.ActivityThread.main(ActivityThread.java:3683) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:875) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:633) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.IllegalArgumentException: Binary XML file line #62: Duplicate id 0x7f050043, tag null, or parent id 0x0 with another fragment for com.google.android.gms.maps.SupportMapFragment 
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:290) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 
+1

onBackPressed 메서드를 재정의하고 조각을 포함하는 작업에서 popBackStack을 올바르게 수행해야합니다. 그래도 작동하지 않으면 onDestroy() 및 clearMap (_googleMap)에서지도를 제대로 파괴하려고 시도하십시오. .. 등 –

답변

0

나는 어제 똑같은 문제를 해결했다고 생각합니다 (중첩 된지도 V2). Error opening SupportMapFragment for second time

=> 답 "Kaleb"에 의해 :

는 여기 해결책을 발견했다. 프로그래밍 방식으로 프래그먼트를 만들고 (레이아웃에 넣지 마십시오) onCreateView/onActivityCreated/onResume 메소드의 코드를 살펴보십시오.

나를 위해 일했습니다.이 도움이 될 수 있기를 바랍니다.