Не работают карты в мобильном приложении apk

1. herfis 503 04.09.21 07:54 Сейчас в теме
Сгенерил в личном профиле гугла api key для гугл-карт по гугловой инструкции (с прописыванием ограничений на имя пакета андроид-программы и хеш ключа разработчика), прописал его в сборщике мобильных приложений, а карты все равно не работают. При вызове из 1С функциональности отображения координат - открывается пустое окно без отрисовки карты (а через отладочную платформу - все ок).
Где я что мог упустить?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. spacecraft 06.09.21 16:48 Сейчас в теме
(1) ключ нужно получить.
тут можно посмотреть:
https://infostart.ru/public/256078/

Теперь внимание, достаточно важный момент! Пока вы запускали свое приложение из-под мобильной платформы на мобильном устройстве, встроенная карта работала нормально. Но если вы собранное мобильное приложение попытаетесь запустить как самостоятельное приложение, то встроенная карта отображаться не будет. Потому что для каждого мобильного приложения необходимо получить ключ карты у Google и ввести его в Сборщике в группе “Мобильные приложения” в поле “Ключ для работы с картами Google”. У мобильной платформы 1С для Андройда такой ключ есть.
6. herfis 503 06.09.21 16:59 Сейчас в теме
(5) Да, конечно. Ключ генерю через Google Cloud Console и вроде все по мануалам...
7. spacecraft 06.09.21 17:06 Сейчас в теме
(6) ключ + оплата.
Reminder: To use the Maps JavaScript API:
All Maps JavaScript API requests must include an API key; we no longer support keyless access.
You must enable billing on each of your projects.
9. herfis 503 06.09.21 17:56 Сейчас в теме
(7) Да, карточка к аккаунту привязана и биллинг активирован
12. spacecraft 06.09.21 18:04 Сейчас в теме
(9) может тогда ключ попробовать перерегистрировать.
14. herfis 503 06.09.21 18:08 Сейчас в теме
8. spacecraft 06.09.21 17:17 Сейчас в теме
10. herfis 503 06.09.21 17:56 Сейчас в теме
(8) Да, эти мануалы тоже штудировал.
2. пользователь 06.09.21 09:17
Сообщение было скрыто модератором.
...
3. herfis 503 06.09.21 16:08 Сейчас в теме
Перепроверял ключ разработчика на соответствие хэшу, перегенерил api key, давал приложению все возможные разрешения, пробовал отключать ограничения на api key в гугле. Куда еще глянуть?
4. herfis 503 06.09.21 16:20 Сейчас в теме
Может быть дело в том, что не зарегистрирован аккаунт разработчика гугла (за который $25 единоразово)? Просто в сторе пока публиковать не планировалось.
А все мануалы (включая гугловые и блогеров всяких) говорят просто о создании api key через Google Cloud Console и все...
11. herfis 503 06.09.21 17:58 Сейчас в теме
Подкинули идею собрать простейшее андроид приложение с моим ключом и посмотреть, что гугл говорит на попытку обращения к картам. Если ничего другое не поможет, то придется с этим заморочиться.
15. herfis 503 06.09.21 18:15 Сейчас в теме
(13) Хм... Интересно. Типа гугл хочет для ограничений SHA1 по какому-то своему сертификату а не ключу разработчика? Странно, конечно. Но это надо аккаунт разработчика оплатить, как я понимаю. Ну и сейчас сделано так что ограничения опциональны. Я и читал где-то и знакомый андроид разраб посоветовал отключить ограничения для ключа чтобы затестить - должно работать. Но не работает :(
16. herfis 503 06.09.21 18:43 Сейчас в теме
(13) Насколько я понял отсюда: https://www.py4u.net/discuss/613835, проблема по вашей ссылке появляется если в сторе опубликовано подписанное приложение. Тогда гугл сверяет хэш в ограничениях с этой подписью, а не подписью разработчика. Но у меня другая ситуация, да и с отключенными ограничениями не работает...
17. spacecraft 07.09.21 00:17 Сейчас в теме
В общем работает.
Создал тестовую конфигурацию с вызовом карты.
Создал проект на console.cloud.google.com.
Получил ключ. Собрал apk с этим ключем.
И ... пустое окно карты.
Но сразу после полуночи все заработало.
18. herfis 503 07.09.21 09:05 Сейчас в теме
(17) А моя полночь все никак не наступает :(
19. spacecraft 07.09.21 09:08 Сейчас в теме
(18) возможно это совпадение.
Что делал:
Очистил кеш приложения Карты.
Запустил приложение Карты и разрешил использовать gps.
20. herfis 503 07.09.21 09:27 Сейчас в теме
(19) Важный вопрос для понимания: ограничения для api по имени пакета приложения и хэшу ключа разработчика указывать обязательно или это просто мера безопасности сейчас? Без указания ограничений - работает?
21. spacecraft 07.09.21 09:29 Сейчас в теме
(20) это именно ограничение и указывать не обязательно. Да и не принимается хеш самоподписанного ключа, сгенерированного в 1С.
У меня ограничения отключены.
22. herfis 503 07.09.21 09:52 Сейчас в теме
(21) Спасибо! Хоть в этом вопросе окончательная ясность.
А какие-то особенности для создания проекта в console.cloud.google.com есть?
Это можно для любого аккаунта гугл сделать и никаких привязок у самого проекта к apk нет?
Только активировать API Maps SDK for Android, создать ключ и убедиться что активирован биллинг?
23. herfis 503 07.09.21 09:54 Сейчас в теме
(21) Еще какие-то API активировать нужно? Или только Maps SDK for Android?
24. spacecraft 07.09.21 09:55 Сейчас в теме
(22) в основном так.
(23) Я помимо Maps SDK for Android и другие API активировал, но судя по статистике запросы идут именно на Maps SDK for Android.
25. herfis 503 07.09.21 10:00 Сейчас в теме
(24) У меня по статистике ни одного запроса так и не было :( Может, мобильную платформу попробовать поменять... Я на 8.3.18.60 собираю.
26. spacecraft 07.09.21 10:03 Сейчас в теме
28. herfis 503 07.09.21 10:08 Сейчас в теме
(26) Я же правильно понимаю, что активный api key без ограничений дает доступ ко всем активированным api? Навскидку никаких других привязок не вижу...
29. spacecraft 07.09.21 10:09 Сейчас в теме
(28) правильно. Этот ключ для всего проекта.
Но можно создать несколько ключей и настраивать ограничением для разных API. Но если нет ограничений, то для всех.
27. herfis 503 07.09.21 10:04 Сейчас в теме
(24) О! А попробуй, плиз, с моим API key собрать, если несложно (потом поменяю). Хоть буду точно знать в аккаунте проблема или в платформе. key:AIzaSyDVJcyCUU87jLG4pcn-TbTF73bDPo8x29c
30. spacecraft 07.09.21 10:09 Сейчас в теме
(27) ок. собирается проект
31. spacecraft 07.09.21 10:21 Сейчас в теме +2 $m
(27) работает с этим ключем.
Попробуй поставить на телефон собранный apk. Может дело в самом телефоне.
Прикрепленные файлы:
ru.spacecraft.test1-arm64.apk
32. herfis 503 07.09.21 10:34 Сейчас в теме
(31) О! И статистика пошла. Спасибо огромное за помощь! Теперь хоть понятно, куда копать. Я 90% был уверен, что проблема на стороне гугла, а оно вон оно чо. По результатам отпишусь.
35. herfis 503 07.09.21 12:02 Сейчас в теме
(31) Вот блин. А можно x32? :)
36. spacecraft 07.09.21 12:16 Сейчас в теме
(35) можно )
https://disk.yandex.ru/d/CKbgrLX84QY4Og

А версия андроид там хоть не меньше 6?
33. herfis 503 07.09.21 10:48 Сейчас в теме
(31) Почему-то не получается скачать. Видать проблемы со связью. Вяленько льется и потом обрывается.
Но я установил приложение на другой телефон и там аналогичная проблема. Так что не похоже, что дело в устройстве.
Вероятно со сборкой что-то не так или с разрешениями или с настройками мобильного приложения...
37. herfis 503 07.09.21 12:45 Сейчас в теме
(36) Спасибо! Сейчас проверю.
Не, тестирую на самсунге на 11 андроиде и китайфоне на 10. Android SDK для сборки качал с 7 по 11 версию.
38. spacecraft 07.09.21 12:47 Сейчас в теме
(37) у меня на 11 и 8 нормально работает. На 4.4 не установилось.
А вот китайский... он гуглосервисы поддерживает? Там сейчас с этими санкциями чехарда началась.
39. herfis 503 07.09.21 12:58 Сейчас в теме
(38) Твое приложение отработало на обоих девайсах.
40. spacecraft 07.09.21 13:05 Сейчас в теме
(39) а вот это уже интересно.
Значит что-то во время сборки не так.
41. herfis 503 08.09.21 12:57 Сейчас в теме
Помогла пересборка на новой мобильной платформе (последней 19 релиза). Что интересно - в новом сборщике добавили проверку на максимальную версию JDK (не старше 13 на текущий момент). В то время как на 18 мобильной платформе спокойно собиралось на JDK 14. Но сомневаюсь, что дело было в версии JDK. Ключ разработчика при этом я тоже перегенерировал, но до этого я тоже несколько раз это делал и без толку. Так что грешу на мобильную платформу, но достоверно непонятно, в чем была проблема.
Еще раз спасибо spacecraft, который помог выяснить что проблема была на моей стороне, а не гугла.
42. spacecraft 08.09.21 13:56 Сейчас в теме
(41) вот как раз вполне возможно, что это было связано с версией JDK
Я вообще ничего специально не устанавливал, для сборки. Указал пути к уже давно установленным библиотекам вместе с android studio.
И даже не к jdk, а к jre 11. У меня проекты на kotlin с ней собираются. И в 1С нормально собрался проект.

Посмотрел полученный манифест. Так там ключ работы с картами указан по устаревшему, но еще поддерживаемому имени:
<met a-data android:name="com.google.android.maps.v2.API_KEY" ...
Так что возможно с новой версией jdk что-то поменялось, но в 1С еще не настроено для этого.
43. herfis 503 08.09.21 16:27 Сейчас в теме
(42) Хм... А как структура андроидного манифеста может зависеть от версии jdk/jre? По-идее, никакой андроидной специфики там быть не может...
А! Вот еще что поменялось. Я не обратил внимание на какой ранее версии android sdk шла сборка. Она еще могла поменяться. В новой платформе просило именно 29 (10 андроид). И я именно ее и подсовывал. А что раньше бралось - не помню... И еще в SDK tools мог другой состав наклацать...
44. spacecraft 08.09.21 16:36 Сейчас в теме
(43) это я для примера привел. А jdk включает в себя стандартные библиотеки java. Может что там и поменялось.
45. spacecraft 08.09.21 16:41 Сейчас в теме
(43)
Я не обратил внимание на какой ранее версии android sdk шла сборка. Она еще могла поменяться. В новой платформе просило именно 29 (10 андроид). И я именно ее и подсовывал. А что раньше бралось - не помню... И еще в SDK tools мог другой состав наклацать...

хм... я просто указал каталог, где все sdk лежат.
46. herfis 503 08.09.21 16:49 Сейчас в теме
(45)
хм... я просто указал каталог, где все sdk лежат.

Я тоже. Но изначально у меня там лежали SDK разных версий, а какую именно брал сборщик - я не обратил внимания.
А для новой мобильной платформы я обратил внимание что в сборщике прописано что ему нужна именно 29 версия. И тогда я для чистоты эксперимента снес все что было раньше и установил с нуля SDK только 29 версии.
47. spacecraft 08.09.21 16:54 Сейчас в теме
(46) не. от этого не зависит. 1С сама выберет нужный.
У меня там установлены: 21,22,23,26,27,28,29,30.
48. herfis 503 08.09.21 17:05 Сейчас в теме
(47) Я про то, что для старой мобильной платформы нужный мог быть другой. Это я просто к вопросу, что еще могло у меня поменяться, после чего заработало. Новые версии мобильной платформы ведь по-идее должны время от времени переползать на поддержку новых версий SDK.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот