"Сервисы Google Play обновляются" в API Карт Google
У меня есть приложение для Android, которое использует Google Maps. Внезапно он перестал работать в режиме выпуска. В представлении "Карта" указывается, что сервисы Google Play обновляются на эмуляторе и на реальных устройствах. Поиск в сети все говорят о файле ключа API, но это не моя проблема!
Я перепробовал все возможные комбинации настроек релиза и обнаружил, что проблема возникает при установке debuggable = false
в конфигурации сборки (с debuggable = true
оно работает). Я не могу понять, почему Карты не работают, потому что, конечно, APK не может быть отлажен. Я также пробовал несколько версий сервисов Google Play, даже самые последние (10.2.0
). Нет разницы.
Что я могу сделать? Пожалуйста, помогите, поскольку я не могу выпустить новую версию в Play Store, пока не исправлю эту ошибку.
5 ответов
"Если я установил для debuggable значение false, оно перестает работать"
Это говорит о том, что доступ к вашему API ограничен режимом отладки. Учитывая, что нет отдельных API-ключей для отладки и выпуска, может показаться, что ваш ключ привязан к вашему отладочному сертификату.
Цитировать "Подробнее об ограничениях ключей API" в документации:
Вы можете по желанию добавить ограничение. Для приложений Android вы ограничиваете ключ отпечатком пальца SHA-1 вашего приложения.
Если у вас есть такое ограничение, различный отпечаток сертификата выпуска нарушит ваш доступ к API.
Взгляните на раздел "Получение информации о сертификате" в документации, указанной выше, чтобы получить правильный (выпуск) отпечаток сертификата
У меня была такая же проблема, и мне удалось ее исправить. Проблема возникает, когда для параметра minifyEnabled установлено значение true (при значении false проблема не возникает).
Короче говоря, я добавил строку:
-keep class com.google.** {*; }
в файл правил proguard (proguard-rules.pro), чтобы избежать запутывания зависимостей сервисов Google Play. По крайней мере, в моем случае результирующий APK не будет намного больше, если добавить это правило.
Я думаю, что проблема возникает, когда использование компонентов карты выполняется из другого модуля (например, в общей библиотеке), но я не проверял это.
К сожалению, последние сервисы Google Play имеют недостатки, и встроенные карты перестают работать практически на ВСЕХ телефонах Huawei/Meizu по всему миру. Нет способа исправить это, очистив кеш, потому что при следующей перезагрузке сервисы Google Play 12.6.73 снова автоматически обновляются и через несколько часов перестанут работать снова. Единственный способ - ждать исправления Google, которое должно быть выпущено довольно быстро.
Это официальный запрос отслеживания дефектов Google об этой проблеме:
Была такая же проблема. Попробуйте обновить сервис Google Play с Gradle, а затем проверьте его. Может быть, это поможет вам. Еще одна вещь, пожалуйста, используйте последнюю версию Gradle и цель, установите также больше или 17.
Если бы та же самая "ошибка" могла быть решена с помощью этих шагов:
https://productforums.google.com/forum/
Я знаю, что вы чувствуете, когда постоянно получаете сообщение "Службы Google Play остановлены". Чтобы решить эту проблему, я бы порекомендовал очистить кеш для Служб Google Play (выберите "Настройки"> "Приложения" или "Диспетчер приложений"> "Службы Google Play"> "Очистить кеш"> "ОК") и Google Play Store. Как только вы очистили кеш, перезагрузите устройство, чтобы проверить, работает ли оно.