yandexmapkit-android icon indicating copy to clipboard operation
yandexmapkit-android copied to clipboard

Карты не отображаются на Samsung Galaxy смартфонах

Open pdapnz opened this issue 8 years ago • 27 comments

Добрый день!

Существует непонятная проблема с библиотекой. На ряде устройств Samsung карта отображается только в самом мелком маштабе. На остальных масштабах только сетка из точек и все. В основном это Galaxy S6. Также отзывы об этом встречаются у владельцев: Galaxy S6 Android 6.0 Galaxy S6 Edge Android 6.0 Galaxy S7 Android 6.0 Galaxy S7 Edge Android 6.0 Galaxy Note4 Android 6.0 Galaxy Note4 Android 5.1 Galaxy Note4 Android 5.0

Удалось в живую протестировать проблему только в облаке на сервисе pcloudy.com на Galaxy S6. В логах которые мне удалось снять вот такая строка подозрительная: 12-28 13:38:17.072 W/System.err(17104): mkdir failed: ENOENT (No such file or directory) : /storage/emulated/0/yandexmaps/data/cache/ru-RU/200/config

И в тестируемом устройстве не было карты памяти. Могут быть какие-то проблемы из за этого? Права я все проверил, они есть.

pdapnz avatar Dec 28 '16 08:12 pdapnz

Спасибо. Попробуем глянуть. В ближайшее время

On 28 Dec 2016 11:39, "pdapnz" [email protected] wrote:

Добрый день!

Существует непонятная проблема с библиотекой. На ряде устройств Samsung карта отображается только в самом мелком маштабе. На остальных масштабах только сетка из точек и все. В основном это Galaxy S6. Также отзывы об этом встречаются у владельцев:

Galaxy S6 Android 6.0 Galaxy S6 Edge Android 6.0 Galaxy S7 Android 6.0 Galaxy S7 Edge Android 6.0 Galaxy Note4 Android 6.0 Galaxy Note4 Android 5.1 Galaxy Note4 Android 5.0

Удалось в живую протестировать проблему только в облаке на сервисе pcloudy.com на Galaxy S6. В лога которые мне удалось снять вот такая строка подозрительная: 12-28 13:38:17.072 W/System.err(17104): mkdir failed: ENOENT (No such file or directory) : /storage/emulated/0/yandexmaps/data/cache/ru-RU/200/config

И в тестируемом устройстве не было карты памяти. Могут быть какие-то проблемы из за этого? Права я все проверил, они есть.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/yandexmobile/yandexmapkit-android/issues/249, or mute the thread https://github.com/notifications/unsubscribe-auth/ABSEm513ds9Gl8q8xf4azEjFCL-RHCHtks5rMiA0gaJpZM4LWwtQ .

saint13 avatar Dec 28 '16 08:12 saint13

И дополнение еще такое. Возможно тоже играет роль. Приложение в котором проблема выявлена использует targetSdkVersion 22

pdapnz avatar Dec 28 '16 08:12 pdapnz

После продолжительных мучений нашелся временный workaround для решения проблемы. Карта на обозначенных устройствах НЕ работает в HD режиме, который для них включен по умолчанию. Updated... Для обозначенных девайсов нужно просто вЫключать HD режим. mMapController.setHDMode(false); Проверено в том числе и на голом примере из репозитория библиотеки.

pdapnz avatar Dec 29 '16 15:12 pdapnz

Здравствуйте! Удалось ли посмотреть что-то по данной проблеме? Workaround конечно снижает напряженность среди пользователей, но отключение HD режима приводит к более долгой загрузке карты. Хотелось бы чтобы карта работала как положено на этих смартфонах.

pdapnz avatar Feb 08 '17 05:02 pdapnz

Да удалось, надеюсь в ближайшее время будет фикс.

saint13 avatar Feb 08 '17 05:02 saint13

Большое спасибо. Ждем с нетерпением.

pdapnz avatar Feb 08 '17 05:02 pdapnz

Привет, будет возможность проверить версию, на падение ?

saint13 avatar Feb 09 '17 12:02 saint13

Попробую.

pdapnz avatar Feb 09 '17 12:02 pdapnz

напиши мне [email protected]

saint13 avatar Feb 09 '17 12:02 saint13

Приветствую а когда планируется новый релиз?

ghost avatar Feb 15 '17 08:02 ghost

saint13, дошло мое письмо с результатами проверки?

pdapnz avatar Feb 15 '17 08:02 pdapnz

Да, все принял сейчас смотрю в чем проблема и почему фикс не помог.

15 февр. 2017 г. 11:13 пользователь "pdapnz" [email protected] написал:

saint13, дошло мое письмо с результатами проверки?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/yandexmobile/yandexmapkit-android/issues/249#issuecomment-279944431, or mute the thread https://github.com/notifications/unsubscribe-auth/ABSEmwLG7pIadF266qwnrW5XXg3IdsnMks5rcrOugaJpZM4LWwtQ .

saint13 avatar Feb 15 '17 13:02 saint13

К сожалению в новой версии библиотеки 2.5.4 проблема все еще актуальна. Ничего не изменилось в этом плане. Протестировано на Samsung Galaxy S7 Edge (Android 7.0)

pdapnz avatar Mar 02 '17 13:03 pdapnz

Не совсем понятно, почему исправление проблемы в 2.5.4 не работает. Дадите какой-нибудь комментарий? Могу протестировать в облаке если необходимо с расширенными логами версию библиотеки.

pdapnz avatar Mar 03 '17 09:03 pdapnz

Переписали тайловый движок загрузки. Проводил тестирование на устройствах, проблем не было обнаружено. Значит проблема уже не в нем. Так как у вас воспроизвелась данная проблема, значит есть какие то особенности. Теперь надо понять какие.

saint13 avatar Mar 03 '17 14:03 saint13

А это нормально *.so файлы внутри библиотек 2.5.3 и 2.5.4 при побайтовом сравнении ничем не отличаются? Или последний апдейт не затронул их? Я к тому что в апдейт точно все что нужно попало?

pdapnz avatar Mar 07 '17 07:03 pdapnz

Да все в порядке. Можно сказать что текущий мапкит полностью на Java. Скажи ты в Москве? Есть девайс на котором воспроизводится? Если да то может есть возможность приехать в офис, попробуем решить ее в реальном времени.

7 марта 2017 г., 10:17 пользователь pdapnz [email protected] написал:

А это нормально в *.so файлы внутри библиотек 2.5.3 и 2.5.4 при побайтовом сравнение ничем не отличаются? Или последний апдейт не затронул их? Я к тому что в апдейт точно все что нужно попало?

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/yandexmobile/yandexmapkit-android/issues/249#issuecomment-284641631, or mute the thread https://github.com/notifications/unsubscribe-auth/ABSEmyRTeB_FasAdaCfobhppVD8uE2G1ks5rjQSEgaJpZM4LWwtQ .

saint13 avatar Mar 07 '17 08:03 saint13

Я не в Москве и девайса нет к сожалению (сам страдаю от этого). Могу только в облаке тестировать на сервисе http://pcloudy.com/ Там есть trial бесплатный, которым я и пользуюсь как раз. Последний девайс на котором тестил Samsung Galaxy S7 Edge (Android 7.0)

pdapnz avatar Mar 07 '17 08:03 pdapnz

А что будет если на Android 6.0 и выше не запросить runtime permission WRITE_EXTERNAL_STORAGE? Где библиотека в таком случае будет хранить кэш?

В семлах кстати нет запроса этих прав и targetSdkVersion 23. Возможно все проблемы из-за этого?

Странно, но на Xiaomi Mi Max (Android 7.0) без этих прав либа прекрасно работает. Возможно на Самсунгах есть какая-то особенность?

pdapnz avatar Sep 15 '17 06:09 pdapnz

Кеш теперь хранится в sqlite и может сохранить в себе только N тайлов, далее вытесняются более старые тайлы. N было рассчитано так, чтобы пользоваться в городе без необходимого запроса тайлов.

15 сент. 2017 г. 9:46 пользователь "pdapnz" [email protected] написал:

А что будет если на Android 6.0 и выше не запросить runtime permission WRITE_EXTERNAL_STORAGE? Где библиотека в таком случае будет хранить кэш?

В семлах https://github.com/yandexmobile/yandexmapkit-android/blob/master/yandexmapkit-sample/src/ru/mapkittest/YandexMapKitSampleActivity.java кстати нет запроса этих прав и targetSdkVersion 23. Возможно все проблемы из-за этого?

Странно, но на Xiaomi Mi Max (Android 7.0) без этих прав либа прекрасно работает. Возможно на Самсунгах есть какая-то особенность?

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/yandexmobile/yandexmapkit-android/issues/249#issuecomment-329696806, or mute the thread https://github.com/notifications/unsubscribe-auth/ABSEm8q89V0grwxjhXVTprwzbCeOVGLnks5sih0qgaJpZM4LWwtQ .

saint13 avatar Sep 15 '17 06:09 saint13

Т.е. WRITE_EXTERNAL_STORAGE вообще не нужен больше для библиотеки?

pdapnz avatar Sep 15 '17 06:09 pdapnz

Да

15 сент. 2017 г. 9:58 пользователь "pdapnz" [email protected] написал:

Т.е. WRITE_EXTERNAL_STORAGE вообще не нужен больше для библиотеки?

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/yandexmobile/yandexmapkit-android/issues/249#issuecomment-329698998, or mute the thread https://github.com/notifications/unsubscribe-auth/ABSEm8U7UDKfnCmsnj7_pOj7t3Y5xtsdks5siiAlgaJpZM4LWwtQ .

saint13 avatar Sep 15 '17 07:09 saint13

База называется cache.db?

helium:/data/data/ru.yandexmapkit.sample/databases $ ls -l
total 4904
-rw-rw---- 1 u0_a152 u0_a152 2486272 2017-09-15 10:34 cache.db
-rw------- 1 u0_a152 u0_a152   16928 2017-09-15 10:34 cache.db-journal
helium:/data/data/ru.yandexmapkit.sample/databases $ sqlite3 cache.db
SQLite version 3.9.2 2015-11-02 18:31:45
Enter ".help" for usage hints.
sqlite> .tables
android_metadata  cache
sqlite> .schema cache
CREATE TABLE cache (_id LONG PRIMARY KEY,cache BLOB);

pdapnz avatar Sep 15 '17 07:09 pdapnz

Могу узнать с какой целью интересуетесь?

15 сент. 2017 г. 10:47 пользователь "pdapnz" [email protected] написал:

База называется cache.db?

helium:/data/data/ru.yandexmapkit.sample/databases $ ls -l total 4904 -rw-rw---- 1 u0_a152 u0_a152 2486272 2017-09-15 10:34 cache.db -rw------- 1 u0_a152 u0_a152 16928 2017-09-15 10:34 cache.db-journal helium:/data/data/ru.yandexmapkit.sample/databases $ sqlite3 ca cache.db cache.db-journal helium:/data/data/ru.yandexmapkit.sample/databases $ sqlite3 cache.db SQLite version 3.9.2 2015-11-02 18:31:45 Enter ".help" for usage hints. sqlite> sqlite> .tables android_metadata cache sqlite> .tables android_metadata cache sqlite> .schema cache CREATE TABLE cache (_id LONG PRIMARY KEY,cache BLOB);

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/yandexmobile/yandexmapkit-android/issues/249#issuecomment-329708342, or mute the thread https://github.com/notifications/unsubscribe-auth/ABSEm6jInjex-TBL7zzVTwPhLP2dhHJ0ks5siiuigaJpZM4LWwtQ .

saint13 avatar Sep 15 '17 09:09 saint13

Да никакого криминала, на проблемном устройстве посмотреть есть ли кеш. Если что то приватное затонул, прошу прощения, сотри сообщения на эту тему.

pdapnz avatar Sep 15 '17 09:09 pdapnz

Все в порядке. Да действительно там лежит кеш.

15 сент. 2017 г. 12:05 пользователь "pdapnz" [email protected] написал:

Да никакого криминала, на проблемном устройстве посмотреть есть ли кеш. Если что то приватное затонул, прошу прощения, сотри сообщения на эту тему.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/yandexmobile/yandexmapkit-android/issues/249#issuecomment-329725347, or mute the thread https://github.com/notifications/unsubscribe-auth/ABSEmxCcwoRCLIGytJrP9Man4t1AhjvDks5sij3KgaJpZM4LWwtQ .

saint13 avatar Sep 15 '17 09:09 saint13

Приветствую!

Небольшое уточнение, проблема с HD-режимом не связана только с девайсами от Samsung.

Проблема присутствует на всех устройствах с достаточно высоким разрешением (близким к 4k), и когда MapView необходимо отобразить на весь экран. Соответственно, если на этих устройствах, отображать MapView с высотой, например, в половину экрана, то HD-режим – работает.

Пытался понять, при каком значении сторон в MapView, перестает работать HD-режим: Увеличивал постепенно стороны на значения, кратные 128px, и, когда одна из сторон достигала, какого-то критического значения, HD-режим переставал работать (на приближении карты уровня "Дом"). Выявить критическое значение не удалось, на разных устройствах по-разному.

Такой подход позволил воспроизводить этот баг на любом из устройств (с различными разрешениями): Если MapView установить жестко значения сторон, например 256 х 5632 px, то это последние значения, когда отображаются тейлы. Если, следующим шагом, увеличить одну из сторон на 1px, то воспроизводится баг.

andrey-borodyuk avatar Jan 17 '18 15:01 andrey-borodyuk