yandex / mapkit-android-demo

MapKit Android demo
Other
122 stars 61 forks source link

MapKit не работает совместно с firebase #170

Closed alexdarh closed 1 year ago

alexdarh commented 4 years ago

Приветствую. Использую для обучения mapkit-android-demo. Решил интегрировать его с firebase. При попытке прописать в build.gradle (app) implementation 'com.google.firebase:firebase-auth:19.3.0' UserLocation перестает работать. карта появляется, но местоположение не определяется. разрешения на геолокацию даны. Ошибка в консоли следующая: 2020-03-24 02:27:07.447 18020-18088/? W/yandex.maps: yandex::maps::runtime::config::internal::ConfigManagerImpl::ConfigManagerImpl: Custom experiments are not allowed 2020-03-24 02:27:07.460 18020-18090/? E/yandex.maps: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.api.Api$zzf" on path: DexPathList[[zip file "/data/app/com.godsgift.nt3-SRGx_ChVR38pp9puHGDJvw==/base.apk"],nativeLibraryDirectories=[/data/app/com.godsgift.nt3-SRGx_ChVR38pp9puHGDJvw==/lib/arm64, /data/app/com.godsgift.nt3-SRGx_ChVR38pp9puHGDJvw==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]] 2020-03-24 02:27:07.671 18020-18084/? W/yandex.maps: yandex::maps::runtime::config::internal::ConfigManagerImpl::ConfigManagerImpl: Custom experiments are not allowed

bboyzlodey commented 4 years ago

@alexdarh А с аналогами работает? Просто тоже хотел связать с firebase

bboyzlodey commented 4 years ago

Тут как одно из решений проблемы можно сделать следующее.

  1. Определите свое местоположение через сервис. Тут есть хороший пример, как это сделать: link
  2. Поставьте метку на карте. Я использовал PlaceMark Можно поиграться с Listener'ами, что бы местоположение было всегда текущим.

Как еще одно решение - отказаться от firebase и использовать аналог, потому что FireBase(Google Services) перекрывает UserLocationименно в том месте, где нужно определить Locationюзера

hikkidev commented 4 years ago

@alexdarh тебе нужно отдельно подключить зависимость play-services-location, т.к. при определении местоположения, устройство обращается к Location API от Google.

    /* Map */
    implementation("com.google.android.gms:play-services-location:17.0.0")
    implementation("com.yandex.android:mapkit:3.5.0")
Gorbulev-Sergey commented 1 year ago

Пробовал подключать и работать с mapKit, потом бросил это дело. Взял веб версию яндекс карт api, встроил через webview, всё гораздо документированнее и понятнее, все работает, в приложении нет лишних библиотек. Конечно не идеальный вариант, но есть в таком способе и свои плюсы.