Google Maps API в Android отображает пустой экран - PullRequest
0 голосов
/ 28 февраля 2020

Я пытался заставить карты Google работать в Android Stud ios.

При создании нового проекта с использованием шаблона карт Google он работает нормально. Однако, когда я реализую карту в моем существующем проекте, все, что она отображает, это серый экран с lo go в левом нижнем углу.

В существующем проекте используется система навигации по фрагментам с одним действием, в котором размещены все другие фрагменты классов. Но это не должно быть причиной проблемы, потому что я реализовал карту так же, как в шаблоне, и она тоже не сработала.

Я проверил вывод Logcat, и нет ' Ошибка при проверке ключа. Если я изменяю ключ, появляется ошибка.

Вот код класса фрагмента, который содержит карту:

    public class MapFragment extends Fragment implements OnMapReadyCallback {

    private MapViewModel dashboardViewModel;

    private GoogleMap mMap;

    public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        dashboardViewModel =
                ViewModelProviders.of(this).get(MapViewModel.class);
        View root = inflater.inflate(R.layout.fragment_map, container, false);

        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) this.getChildFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);

        return root;
    }

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

        LatLng testLocation = new LatLng(50, -2);
        mMap.moveCamera(CameraUpdateFactory.newLatLng(testLocation));
    }

}

Это мой файл манифеста:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.backintyne">

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Спасибо заранее

1 Ответ

0 голосов
/ 03 марта 2020

Ошибка обычно может быть вызвана любой из следующих причин:

  • с использованием ключа API, но из проекта без действительного платежного аккаунта
  • с использованием недопустимого / неправильного / неправильно сформированного Ключ API
  • с использованием ключа API, который ограничен другими приложениями, кроме вашего
  • SDK Maps для Android не включен в вашем проекте

Make убедитесь, что вы используете ключ API из проекта, в котором есть действующий платежный аккаунт, поскольку в Maps SDK для Android документации указано, что перед началом использования API и SDK Google Maps Platform необходимо зарегистрируйтесь и создайте платежную учетную запись.

Если ваш ключ API имеет ограничения, убедитесь, что он правильно ограничен в соответствии с рекомендациями Key API . Убедитесь, что вы включили Maps SDK для Android для своего проекта карт в консоли GCP.

Наконец, если у вас все еще есть проблемы, не стесняйтесь подать заявку на поддержку для открыть персональный канал связи.

...