2016-02-09 12 views
3

Я искал онлайн, чтобы найти решение, поскольку метод getMap() устарел, поэтому я хотел бы заменить его getMapAsync() ;. Я искал в Google, а также официальные документы андроидов, и я все еще застрял, пожалуйста, помогите.Обязательно com.google.android.gms.GoogleMap найдено void

Я получаю сообщение об ошибке, которое говорит несовместимый тип Обязательный 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) { 

    } 
} 

Этот метод ниже дает ошибку и говорит, что несовместимый тип Обязательный com.google.android.gms.GoogleMap признана недействительной.

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

ответ

7

getMapAsync имеет в качестве типа возвращаемого значения аннулируются, и вы пытаетесь присвоить ему

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

к googleMap. Это не имеет особого смысла. Вызов только getMapAsync как

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

и назначить googleMap когда onMapReady вызывается. Например.

@Override 
public void onMapReady(GoogleMap googleMap) { 
    this.googleMap = googleMap; 
} 
+0

Спасибо, что вы сейчас работали эффективно. –

+0

приветствуются – Blackbelt