2016-07-25 3 views
0

У меня есть следующее сообщение об ошибке на API 10:GoogleMap v2 API 10 ошибок фрагмент класса накачивания

FATAL EXCEPTION: main 
                    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ter.androidapp/com.ter.androidapp.activities.RootActivity}: android.view.InflateException: Binary XML file line #106: Error inflating class fragment 
                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
                     at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
                     at android.os.Handler.dispatchMessage(Handler.java:99) 
                     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:839) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
                     at dalvik.system.NativeStart.main(Native Method) 
                    Caused by: android.view.InflateException: Binary XML file line #106: Error inflating class fragment 

Здесь я загружаю карта:

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

    if (mMapViewContainer == null) { 
     here it crash -> mMapViewContainer = getLayoutInflater().inflate(R.layout.fragment_geoloc_map, null); 
     mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapview_geolo); 
     mapFragment.getMapAsync(this); 
    } 

    FaceBookShareManager.getInstance().initialize(getString(R.string.facebookId)); 

    getSupportFragmentManager().addOnBackStackChangedListener(this); 

    if (savedInstanceState == null) { 
     setupTabBarColors(0); 
     getSupportFragmentManager().beginTransaction().add(R.id.leftPanelContainer, new StationsSearchFragment(), Constants.TAG_STATION_FRAGMENT).commit(); 
    } 

    if (getIntent() != null && Constants.WIDGET_STATION_CLICK.equals(getIntent().getAction()) && getIntent().getData() != null) { 
     displayStationFromWidget(Integer.valueOf(getIntent().getData().getSchemeSpecificPart())); 
    } 

    setTrackFromNotif(); 

    checkForTrainFromWidget(getIntent()); 
    if (getIntent() != null && getIntent().getExtras() != null) { 
     onNewIntent(getIntent()); 
    } 
} 

Это из fragment_geoloc_map.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/topLayout" 
    android:background="@color/transparent" > 

    <TextView 
     android:id="@+id/textView_trainNum" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:gravity="center" 
     android:padding="5dip" 
     android:textSize="@dimen/xxLargeText" 
     android:visibility="gone" /> 

    <RelativeLayout 
     android:id="@+id/geolocInfoContainer" 
     android:layout_width="fill_parent" 
     android:paddingBottom="10dip" 
     android:layout_height="wrap_content" > 

     <TextView 
      android:id="@+id/textView_title" 
      android:layout_width="fill_parent" 
      android:layout_height="60dip" 
      android:layout_marginBottom="10dp" 
      android:background="@drawable/btn_rechercher_red" 
      android:gravity="center" 
      android:paddingBottom="14dp" 
      android:paddingTop="14dp" 
      android:text="@string/selectStation" 
      android:textColor="@color/white" 
      android:textSize="@dimen/xxxLargeText" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/textView_choose_radius" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBottom="@+id/imageView_refresh_map" 
      android:layout_alignTop="@+id/imageView_refresh_map" 
      android:layout_marginRight="10dp" 
      android:layout_toLeftOf="@+id/textView_radius" 
      android:gravity="center_vertical" 
      android:text="@string/radius" 
      android:textColor="@color/darkGrey" 
      android:textSize="@dimen/largeText" /> 

     <TextView 
      android:id="@+id/textView_radius" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBottom="@+id/imageView_refresh_map" 
      android:layout_alignTop="@+id/imageView_refresh_map" 
      android:layout_marginRight="5dp" 
      android:layout_toLeftOf="@+id/imageView_refresh_map" 
      android:background="@color/radiusGrey" 
      android:drawableBottom="@drawable/ico_triangle_gris" 
      android:gravity="center_vertical" 
      android:paddingBottom="5dip" 
      android:paddingLeft="15dip" 
      android:paddingRight="15dip" 
      android:text="@string/initial_radius" 
      android:textColor="@color/radiusTextViewColor" 
      android:textStyle="bold" /> 

     <ImageView 
      android:id="@+id/imageView_refresh_map" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/textView_title" 
      android:layout_marginRight="5dp" 
      android:layout_toLeftOf="@+id/imageView_backToList" 
      android:background="@color/red" 
      android:padding="8dip" 
      android:src="@drawable/ico_refresh" /> 

     <ImageView 
      android:id="@+id/imageView_backToList" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_below="@+id/textView_title" 
      android:layout_marginRight="10dip" 
      android:background="@color/red" 
      android:paddingBottom="8dip" 
      android:paddingLeft="10dip" 
      android:paddingRight="9dip" 
      android:paddingTop="8dip" 
      android:src="@drawable/ico_list_carte_red" /> 

    </RelativeLayout> 



    <fragment 
     class="com.google.android.gms.maps.SupportMapFragment" 
     android:id="@+id/mapview_geolo" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_below="@+id/geolocInfoContainer" /> 

</RelativeLayout> 

И это из файла манифеста:

<meta-data 
    android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version" /> 
<meta-data 
    android:name="com.google.android.maps.v2.API_KEY" 
    android:value="@string/mapsAPIv2" /> 

Я тестировал API 10, 16, 22, 23. Но в API 10 у меня проблема с раздувом. Я не понимаю, что я должен изменить

ответ

0

Из информации вы делитесь не кажется, что

fragment_geoloc_map.xml

находится в иерархии представлений.

Вам необходимо выполнить одно из следующих действий:

  • Включите файл фрагмент XML в макете активности
  • Включите SupportMapFragment в макете деятельности
  • Предоставлять родительский вид вы раздувание фрагмента xml, а не null

Если это не имеет смысла, можете ли вы отправить больше кода в свой пример (код операции и файл макета).


Update

Вам необходимо делегировать события жизненного цикла от деятельности/фрагмента к MapView.

Вы не можете позвонить getMapAsync(OnMapReadyCallback), пока не делегировали:

  • onCreate(Bundle)
  • onResume()

Вы должны затем делегировать:

  • onPause()
  • onDestroy()
  • onSaveInstanceState(Bundle)
  • onLowMemory()

К MapView для того, чтобы предотвратить утечку памяти и распределения.

Смежные вопросы