Я создал новый проект с помощью мастера и выбрал «Google Maps Activity». Вставлен мой ключ API, но нет предварительного просмотра карты, только серый экран с надписью. Есть также предупреждение под названием Неизвестные фрагменты, которое гласит:
"A <fragment> tag allows a layout file to dynamically include different layouts at runtime. At layout editing time the specific layout to be used is not known. You can choose which layout you would like previewed while editing the layout.
- <fragment com.google.android.gms.maps.SupportMapFragment ...> (Pick Layout...)
Do not warn about <fragment> tags in this session"
Я искал в Интернете часами, но не смог найти способ это исправить. Если кто-то может, пожалуйста, дайте мне знать, я был бы очень признателен.
Это код из activity_maps.xml
<?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MapsActivity"
tools:layout="@layout/activity_maps" />
А это код из MapsActivty.java
> package com.example.android.myapplication;
>
> 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));
> }
> }