Ошибка раздувания фрагмента класса в MapFragment

67
7

У меня есть xml файл с моим MapFragment

<?xml version="1.0" encoding="utf-8"?>
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />

И Фрагмент, используя его:

public class CallistoMapFragment extends MapFragment {
private GoogleMap mMap;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.map_fragment, null);
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
setUpMap();
return v;
}

private void setUpMap() {
mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title(
"Marker"));
}

} При попытке скомпилировать ошибку получения

11-20 15: 31:15.343: E/AndroidRuntime (10705): android.view.InflateException: двоичная строка XML файла # 6: ошибка раздувания фрагмента класса

API-ключ в манифесте android является правильным. Что не так?

спросил(а) 2013-11-20T15:36:00+04:00 6 лет, 7 месяцев назад
1
Решение
85

если зависимости показывают предупреждение или ошибку, вы должны изменить его для последнего, как...

изменение

compile 'com.google.android.gms:play-services-maps:6.5.87'

в

 compile  'com.google.android.gms:play-services-maps:8.4.0'

Он работает на меня.

ответил(а) 2017-07-22T16:12:00+03:00 2 года, 11 месяцев назад
86

Использование:

XML:

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

Класс

GoogleMap mMap;
SupportMapFragment mapFrag;

Now set it:

if (mMap == null) {
mapFrag= (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
mMap = mapFrag.getMap();

// Check if we were successful in obtaining the map.
if (mMap != null) {
// The Map is verified. It is now safe to manipulate the map.

}
}

Также добавьте этот метатег внутри файла манифеста.

 <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="myApiKey"/>

ответил(а) 2013-11-20T15:40:00+04:00 6 лет, 7 месяцев назад
39

См. Эту ссылку в этой документации поэтапно.

ответил(а) 2013-11-20T17:26:00+04:00 6 лет, 7 месяцев назад
39

Добавьте свой проект в сервисы Google для вашего проекта...

ответил(а) 2013-11-20T15:40:00+04:00 6 лет, 7 месяцев назад
40

Попробуйте: добавьте это в свой манифест в тег приложения

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

ответил(а) 2013-11-20T15:39:00+04:00 6 лет, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема