必需的com.google.android.gms.GoogleMap发现无效

Mad*_*e_J 4 android android-mapview android-maps-v2

我已经在网上寻找解决方案,因为getMap()方法已经过时,因此,我想用getMapAsync();替换它.我搜索了谷歌以及机器人官方文件,我仍然卡住请帮忙.

我现在收到一条错误消息,指出不兼容的类型要求com.google.android.gms.GoogleMap发现无效.

public class Maps extends AppCompatActivity implements OnMapReadyCallback {
    private GoogleMap googleMap;

    @Override protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.Maps);

        googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(
                R.id.mapFragment)).getMapAsync(this);


        LatLng latlong = new LatLng(lat, lon);
        googleMap.addMarker(new MarkerOptions().position(latlong).title(name));
        googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlong, 15));
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {

    }
}
Run Code Online (Sandbox Code Playgroud)

下面的方法给出了错误,它表示不兼容的类型必须com.google.android.gms.GoogleMap发现无效.

googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(
                R.id.mapFragment)).getMapAsync(this);
Run Code Online (Sandbox Code Playgroud)

Bla*_*elt 8

getMapAsync 具有返回类型void,并且您尝试分配它

googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(
                R.id.mapFragment)).getMapAsync(this);
Run Code Online (Sandbox Code Playgroud)

googleMap.哪个没有多大意义.仅调用getMapAsync

((SupportMapFragment) getSupportFragmentManager().findFragmentById(
                R.id.mapFragment)).getMapAsync(this);
Run Code Online (Sandbox Code Playgroud)

googleMaponMapReady调用时分配.例如

@Override
public void onMapReady(GoogleMap googleMap) {
    this.googleMap = googleMap;
}
Run Code Online (Sandbox Code Playgroud)