#25 Падения без сохранений

닫힘
toby3d3 년 전을 오픈 · 16개의 코멘트
Maxim Lebedev 코멘트됨, 3 년 전

Автосохранение в заранее заданные папки не работает. Первая попытка приводит к повторному запросу выбора директории, а следующая - к тихому падению приложения или падению с попапом (см. скриншот). В конечном итоге ничего не сохраняется ни в каком виде.

Устройство Xiaomi Mi 5s Plus с MicroG для LineageOS 17.1 (Android 10). Сохранялка и Качалка установлены через F-Droid.

Автосохранение в заранее заданные папки не работает. Первая попытка [приводит к повторному запросу выбора директории](https://www.youtube.com/watch?v=kdiqh0fcyRI), а следующая - к тихому падению приложения или падению с попапом (см. скриншот). В конечном итоге ничего не сохраняется ни в каком виде. Устройство Xiaomi Mi 5s Plus с MicroG для LineageOS 17.1 (Android 10). Сохранялка и Качалка установлены через F-Droid.
Umnik 코멘트됨, 3 년 전
소유자

А это на любом файле или для конкретных примеров?

А это на любом файле или для конкретных примеров?
Maxim Lebedev 코멘트됨, 3 년 전
포스터

Любые файлы. Что с картинками, что с архивами или документами.

Больше напрягает то, что я заранее выдав права на директорию обязан заново их предоставлять в момент сохранения. Скорее всего права "доступа к хранилищу" всё равно потребуются. Но это не точно, я в мобильной разработке не силён.

Я готов поковырять ночные и тестовые сборки на себе, если необходимо.

Любые файлы. Что с картинками, что с архивами или документами. Больше напрягает то, что я заранее выдав права на директорию обязан заново их предоставлять в момент сохранения. Скорее всего права "доступа к хранилищу" всё равно потребуются. Но это не точно, я в мобильной разработке не силён. Я готов поковырять ночные и тестовые сборки на себе, если необходимо.
Umnik 코멘트됨, 3 년 전
소유자

А можешь логкат собрать? У меня нет никакой системы логгирования в приложении, чтобы исключить случайные утечки, так что мне хотябы сам стек трейс от Андроида увидеть.

adb logcat -c
adb logcat -v threadtime > file.txt
*воспроизвести падение*
Ctrl+C

И пришли файл. Если необходимо исключить из лога потенциально приватные данные, то скопируй мне только конец, где будет написано FATAL что-нибудь. Ну там будет очевидно, где начинается и заканчивается стектрейс.

Более подробно расписать, как логкат снимать? Хотя у тебя Линейдж, так что ты знаешь, я думаю.

А можешь логкат собрать? У меня нет никакой системы логгирования в приложении, чтобы исключить случайные утечки, так что мне хотябы сам стек трейс от Андроида увидеть. ``` adb logcat -c adb logcat -v threadtime > file.txt *воспроизвести падение* Ctrl+C ``` И пришли файл. Если необходимо исключить из лога потенциально приватные данные, то скопируй мне только конец, где будет написано FATAL что-нибудь. Ну там будет очевидно, где начинается и заканчивается стектрейс. Более подробно расписать, как логкат снимать? Хотя у тебя Линейдж, так что ты знаешь, я думаю.
Umnik 코멘트됨, 3 년 전
소유자

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

В целом, второй раз он у тебя спрашивает разрешения не на картинку, а на документы, на самом деле, потому что шарится не картинка, а текст. Так что второй раз можно указать папку для документов. Но это ответ на то, почему 2 раза спрашивает, а не на то, почему падает.
Maxim Lebedev 코멘트됨, 3 년 전
포스터

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

[logcat с процессом](https://gist.github.com/toby3d/458ec3fadeb17f494e54c5478467aa92) выбора автосохранения дважды: первая попытка ничем не отзывается, а на второй - уже сообщение о падении, на которой я остановил запись.
Umnik 코멘트됨, 3 년 전
소유자

Ага, спасибо, изучу.

Ага, спасибо, изучу.
Umnik 코멘트됨, 3 년 전
소유자

Очень странное падение. Якобы нет файла, но я не использую доступ к файлам в приципе. Точно сказать сходу не могу, что не так, потому что релизные сборки обфусцируются частично и там имена методов и строки поехали.

Вот сборка без обфускации. Логов в ней тоже пока нет. Дай стектрейс с ней, я хоть гляну, куда логи добавить, чтобы понять, что происходит.

Очень странное падение. Якобы нет файла, но я не использую доступ к файлам в приципе. Точно сказать сходу не могу, что не так, потому что релизные сборки обфусцируются частично и там имена методов и строки поехали. Вот сборка без обфускации. Логов в ней тоже пока нет. Дай стектрейс с ней, я хоть гляну, куда логи добавить, чтобы понять, что происходит.
Umnik 3 년 전가 Close
Umnik 3 년 전를 다시 열음
Umnik 코멘트됨, 3 년 전
소유자

https://cloud.myachin.xyz/index.php/s/YssaqwyHHrMnoD6

Не туда нажал и закрыл, вместо ссылки.

В общем, дай лог с падением на этой сборке.

А что касается 2х запросов — это не баг, но это я выше описал. Для документов отдельно тоже разреши папку.

https://cloud.myachin.xyz/index.php/s/YssaqwyHHrMnoD6 Не туда нажал и закрыл, вместо ссылки. В общем, дай лог с падением на этой сборке. А что касается 2х запросов — это не баг, но это я выше описал. Для документов отдельно тоже разреши папку.
Maxim Lebedev 코멘트됨, 3 년 전
포스터

logcat c дебажной сборкой. В районе 14-й секунды была первая попытка сохранить файл, а секунд через 10 - вторая, приводящая к падению.

Причём с этой сборкой в настройках предварительно указана директория только для изображений (как и раньше), но больше нет запроса директории для сохранения документов после первой попытки.

[logcat](https://gist.github.com/toby3d/f80c1ccbf6f2c512bf55b0c40a5cbc68) c дебажной сборкой. В районе 14-й секунды была первая попытка сохранить файл, а секунд через 10 - вторая, приводящая к падению. Причём с этой сборкой в настройках предварительно указана директория только для изображений (как и раньше), но больше нет запроса директории для сохранения документов после первой попытки.
Umnik 코멘트됨, 3 년 전
소유자

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

Вопросы:

  1. Если ты пошаришь картинку из Хрома (не ссылку, т.к. там владельцем будет Качалка), проблема сохранится?
  2. Если ты пошаришь ссылку из любого браузера (или "картинку" из Фаерфокса, который на самом деле пошарит ссылку) и Качалка стригеррится, падение будет? То есть когда Качалка вытянет картику по ссылке, а затем предоставит доступ Сохранялке
  3. Нет ли у тебя в системе агрессивных киллеров, которые могут слишком рьяно чистить ОЗУ и убивать владельцев до того, как они передадут мне данные? Не включено ли в Девелопер Опшенс сохранение только, скажем, одного последнего активити?

В общем и в целом, как бы то ни было, я могу несколько переделать сохранялку. Чтобы она сразу забирала контент в себя, а только потом задавала вопрос юзеру. Если юзер всё сделает правильно, но сохранит объект. И при любом раскладе удалит объект, если его никто не забрал за Х минут. Так делает Качалка, например. Вот эту логику могу забрать в Сохранялку ещё.

Но до этого хочется понять наверняка, что происходит. А не гадать.

Если я правильно понимаю, на момент, когда Сохранялка обращается к владельцу файла за данными, владелец эти данные уже убил. Владельцем является Музей 3 приложение в данном случае. Вопросы: 1. Если ты пошаришь картинку из Хрома (не ссылку, т.к. там владельцем будет Качалка), проблема сохранится? 2. Если ты пошаришь ссылку из любого браузера (или "картинку" из Фаерфокса, который на самом деле пошарит ссылку) и Качалка стригеррится, падение будет? То есть когда Качалка вытянет картику по ссылке, а затем предоставит доступ Сохранялке 3. Нет ли у тебя в системе агрессивных киллеров, которые могут слишком рьяно чистить ОЗУ и убивать владельцев до того, как они передадут мне данные? Не включено ли в Девелопер Опшенс сохранение только, скажем, одного последнего активити? В общем и в целом, как бы то ни было, я могу несколько переделать сохранялку. Чтобы она сразу забирала контент в себя, а только потом задавала вопрос юзеру. Если юзер всё сделает правильно, но сохранит объект. И при любом раскладе удалит объект, если его никто не забрал за Х минут. Так делает Качалка, например. Вот эту логику могу забрать в Сохранялку ещё. Но до этого хочется понять наверняка, что происходит. А не гадать.
Umnik 코멘트됨, 3 년 전
소유자

Попробуй на этом приложении: https://cloud.myachin.xyz/index.php/s/Ff7bJ6YMwy5WXab

Только проверять нужно:

  1. Только на картинках
  2. Выбирать тот, который помечен как DEBUG. См. скриншот:
Попробуй на этом приложении: https://cloud.myachin.xyz/index.php/s/Ff7bJ6YMwy5WXab Только проверять нужно: 1. Только на картинках 2. Выбирать тот, который помечен как DEBUG. См. скриншот:
Umnik 코멘트됨, 3 년 전
소유자

Здарова.

Вот ещё обновление: https://cloud.myachin.xyz/index.php/s/Ff7bJ6YMwy5WXab

Полностью переписал механизм сохранения данных. Теперь во-первых не будет ложного запроса при шаринге ссылки, во-вторых файл сразу же утягивается в кеш и только потом начинается его обработка. При разрушении активити по любой причине (хоть штаное завершение, хоть падение) кеш очищается.

Можешь посмотреть?

Тут сломаны нафиг настройки, туда лучше не лезть. Они сломаны из-за как раз изменений и пока их не подтянул под новое поведение.

Здарова. Вот ещё обновление: https://cloud.myachin.xyz/index.php/s/Ff7bJ6YMwy5WXab Полностью переписал механизм сохранения данных. Теперь во-первых не будет ложного запроса при шаринге ссылки, во-вторых файл сразу же утягивается в кеш и только потом начинается его обработка. При разрушении активити по любой причине (хоть штаное завершение, хоть падение) кеш очищается. Можешь посмотреть? Тут сломаны нафиг настройки, туда лучше не лезть. Они сломаны из-за как раз изменений и пока их не подтянул под новое поведение.
Maxim Lebedev 코멘트됨, 3 년 전
포스터

Сорян за столько долгое молчание. Я переезжал и было вообще не до компьютерно-телефонных дел.

Тут сломаны нафиг настройки, туда лучше не лезть. Они сломаны из-за как раз изменений и пока их не подтянул под новое поведение.

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

Можешь посмотреть?

Накатил, попробовал, на основе ситуации описанной выше, только ручное сохранение и результаты смешанные: то как и раньше падает на второй попытке пошарить файл, то при шаринге картинки предлагает сохранить (внезапно) текст.


Всё это началось и продолжается в пределах приложения живых обоев Muzei. Я пробую сохранять текущие обои встроенного плагина "Painting of the day" и любые текущие обои плагина Pixiv for Muzei. Можешь попробовать накатить эти приложения и воспроизвести проблемы локально. Я подозреваю что дело отнюдь не в ОС или модели устройства, а в механизме шаринга конкретно оттуда.

Отвечая на вопросы ранее с последней предоставленной тобой сборкой:

Если ты пошаришь картинку из Хрома (не ссылку, т.к. там владельцем будет Качалка), проблема сохранится?

В мобильном огнелисе шеринг пикч в сохранялку работает корректно.

Если ты пошаришь ссылку из любого браузера (или "картинку" из Фаерфокса, который на самом деле пошарит ссылку) и Качалка стригеррится, падение будет?

Открытие картинки в огнелисе в новой вкладке и последующий шаринг вкладки в сохранялку работает корректно.

Нет ли у тебя в системе агрессивных киллеров, которые могут слишком рьяно чистить ОЗУ и убивать владельцев до того, как они передадут мне данные?

Не пользуюсь сторонними или встроенными оптимизаторами.

Не включено ли в Девелопер Опшенс сохранение только, скажем, одного последнего активити?

Настройка "Лимит фоновых процессов" установлена в "Стандартное значение", опция "Вытеснение фоновых Activity" отключена.

Сорян за столько долгое молчание. Я переезжал и было вообще не до компьютерно-телефонных дел. > Тут сломаны нафиг настройки, туда лучше не лезть. Они сломаны из-за как раз изменений и пока их не подтянул под новое поведение. Это проблема, так как кастомные сборки не хотят устанавливаться поверх уже установленного приложения. Приходится сносить оригинал и ставить кастомную с потерей уже настроенных директорий. > Можешь посмотреть? Накатил, попробовал, на основе ситуации описанной выше, только ручное сохранение и результаты смешанные: то как и раньше падает на второй попытке пошарить файл, то при шаринге картинки предлагает сохранить (внезапно) текст. --- Всё это началось и продолжается в пределах приложения живых обоев [Muzei](https://f-droid.org/en/packages/net.nurik.roman.muzei/). Я пробую сохранять текущие обои встроенного плагина "Painting of the day" и любые текущие обои плагина [Pixiv for Muzei](https://f-droid.org/en/packages/com.antony.muzei.pixiv/). Можешь попробовать накатить эти приложения и воспроизвести проблемы локально. Я подозреваю что дело отнюдь не в ОС или модели устройства, а в механизме шаринга конкретно оттуда. Отвечая на вопросы ранее с последней предоставленной тобой сборкой: > Если ты пошаришь картинку из Хрома (не ссылку, т.к. там владельцем будет Качалка), проблема сохранится? В мобильном огнелисе шеринг пикч в сохранялку работает корректно. > Если ты пошаришь ссылку из любого браузера (или "картинку" из Фаерфокса, который на самом деле пошарит ссылку) и Качалка стригеррится, падение будет? Открытие картинки в огнелисе в новой вкладке и последующий шаринг вкладки в сохранялку работает корректно. > Нет ли у тебя в системе агрессивных киллеров, которые могут слишком рьяно чистить ОЗУ и убивать владельцев до того, как они передадут мне данные? Не пользуюсь сторонними или встроенными оптимизаторами. > Не включено ли в Девелопер Опшенс сохранение только, скажем, одного последнего активити? Настройка "Лимит фоновых процессов" установлена в "Стандартное значение", опция "Вытеснение фоновых Activity" отключена.
Umnik 코멘트됨, 3 년 전
소유자

Спасибо. Ещё поисследую позже. Надо пока текущую сборку стабилизировать, т.к. в ней уже есть ради чего релиз делать.

Спасибо. Ещё поисследую позже. Надо пока текущую сборку стабилизировать, т.к. в ней уже есть ради чего релиз делать.
Umnik 코멘트됨, 3 년 전
소유자

Частично исправлено в версии 1.12

Приложение посылает не совсем корректный интент. А точнее — сообщает, что файла mimeType image/*. Приложение же пытается сохранять объекты исходя из конкретного типа. Т.к. там просто звёздочка, была проблема. Это и исправено в 1.12 частично. Частично, потому что:

  1. Определяется такой маймТайп и файл пытаюсь распознать по заголовку. Сейчас есть распознавание только для pdf и jpeg. Если картинки в жпеге, то проблемы не будет. Если картинки есть в других форматах, то сообщи, пожалуйста, в каких именно. Добавлю и их распознование
  2. Музей без плагина шарит реально текст, а не картинку. Так что приложение честно просит сохранять текст. А ещё оно иногда, в первый раз, вообще может ничего не прислать. Не понятно почему, возможно оно из сети подгружает данные и не успевает их вытянуть. С плагином пока такого не случалось — сразу картинки шлёт

В общем, можешь посмотреть сборку 1.12, которая вот тут прицеплена: https://notabug.org/Umnik/SaveTo/releases Эта версия и будет собрана F-Droid'ом на следующей неделе. Ну, только с другой подписью, понятное дело.

Частично исправлено в версии 1.12 Приложение посылает не совсем корректный интент. А точнее — сообщает, что файла mimeType `image/*`. Приложение же пытается сохранять объекты исходя из конкретного типа. Т.к. там просто звёздочка, была проблема. Это и исправено в 1.12 частично. Частично, потому что: 1. Определяется такой маймТайп и файл пытаюсь распознать по заголовку. Сейчас есть распознавание только для pdf и jpeg. Если картинки в жпеге, то проблемы не будет. Если картинки есть в других форматах, то сообщи, пожалуйста, в каких именно. Добавлю и их распознование 2. Музей без плагина шарит реально текст, а не картинку. Так что приложение честно просит сохранять текст. А ещё оно иногда, в первый раз, вообще может ничего не прислать. Не понятно почему, возможно оно из сети подгружает данные и не успевает их вытянуть. С плагином пока такого не случалось — сразу картинки шлёт В общем, можешь посмотреть сборку 1.12, которая вот тут прицеплена: https://notabug.org/Umnik/SaveTo/releases Эта версия и будет собрана F-Droid'ом на следующей неделе. Ну, только с другой подписью, понятное дело.
Umnik 코멘트됨, 3 년 전
소유자

А, ну и сейчас в принципе не должно падать, т.к. теперь пытаюсь определять не ожидаемые данные и в худшем случае игнорирую их

А, ну и сейчас в принципе не должно падать, т.к. теперь пытаюсь определять не ожидаемые данные и в худшем случае игнорирую их
Umnik 3 년 전가 Close
로그인하여 이 대화에 참여
마일스톤 없음
담당자 없음
참여자 2명
로딩중...
취소
저장
아직 콘텐츠가 없습니다.