Как исправить «Incovertible типы» в Android-студии? - PullRequest
0 голосов
/ 24 июня 2019

необратимых типов; невозможно преобразовать 'android.support.v4.app.Fragment' в 'com.google.android.gms.maps.SupportMapFragment'

package com.dhami.ajay.nearby;

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        // Add a marker in Sydney and move the camera
        LatLng sydney = new LatLng(-34, 151);
        mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    }
}

Эта строка вызывает проблемы несовместимого типа:

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager (). FindFragmentById (R.id.map)

1 Ответ

1 голос
/ 24 июня 2019

Полученная ошибка означает, что фрагмент с идентификатором "map" определен как обычный фрагмент.Возможно, ваш фрагмент отсутствует android:name="com.google.android.gms.maps.SupportMapFragment" в макете.Убедитесь, что ваш макет XML содержит что-то вроде этого:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/map"
    tools:context=".MapsActivity"
    android:name="com.google.android.gms.maps.SupportMapFragment" />

Примечание:

Похоже, вы используете Учебник для SDK для карт дляAndroid предоставлен Google.По умолчанию res/layout/activity_maps.xml должен содержать именно такой фрагмент блока, поэтому у вас не должно быть никаких проблем, если вы не изменили макет или не реализовали свой собственный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...