У меня Samsung Galaxy S6 Edge (64 ГБ) под управлением Android Lollipop 5.0.2, который у меня с момента выпуска (10 апреля 2015 года), и, как указано в заголовке, похоже, есть проблема в том, что мои изображения больше не отображаются в стандартном приложении галереи. У меня также есть много музыки на телефоне, которая больше не отображается в "Музыкальном проигрывателе". Я не знаю точно, по какой причине исчезают фотографии и музыка, так как это происходит совершенно случайно. Я все еще могу видеть файлы в файловом менеджере по умолчанию "Мои файлы".
Когда это случилось в первый раз, я подумал, что это может быть глюк, поэтому сделал сброс настроек до заводских, и все снова стало хорошо (хотя мне потребовалось около 3 часов, чтобы привести телефон в то состояние, которое мне нравится). Затем это произошло во второй раз через несколько дней, и я сделал еще один сброс настроек. Когда это произошло в третий раз, я уже начал раздражаться и отнес его в местный центр ремонта Samsung, где мне сказали, что это проблема с программным обеспечением, и они должны переустановить Android, и все будет решено. Однако через 5 дней это произошло снова, поэтому я вернулся в Carphone Warehouse, где я приобрел контракт, и потребовал новый телефон, так как это должна быть проблема с телефоном, поскольку я не смог найти записи о том, что это произошло с кем-то еще, а Samsung уже устранил проблему с программным обеспечением.
Теперь, через 2 недели после того, как я получил новый телефон, это случилось снова! Утром изображения были на месте, а вечером все они исчезли из галереи, и снова исчезла музыка. Сегодня я не делал с телефоном ничего необычного, поэтому не могу определить, что произошло.
Если я делаю новые снимки на камеру, они появляются в галерее нормально, но старые снимки не появляются. Если я посмотрю в "Мои файлы", я увижу, что старые снимки находятся в том же месте, что и новая фотография, которую я только что сделал... Это почти как если бы они были скрыты в галерее. Если я установлю приложение, такое как QuickPic, все изображения будут отображаться в нем, как новые, так и старые, однако я не могу использовать его для обмена изображениями на facebook и т.д., так что это не идеально.
То же самое относится и к музыкальным файлам. Если я загляну в "Мои файлы", я смогу их увидеть, но они не появятся в "Музыкальном проигрывателе", что означает, что все мои мелодии будильника были установлены на треки по умолчанию, т.е. "Утренний цветок".
На скриншотах ниже показаны все изображения, которые в настоящее время находятся в папке Camera, но только верхнее из них отображается в галерее и только верхнее находится в категории "Изображения" в разделе "Мои файлы".
Я перебрал всевозможные настройки, очистил раздел кэша, нажал "Показать скрытые файлы" в "Моих файлах" и перезагрузил телефон несколько раз, но проблема все еще остается. Я также удалил "Media Data" из "Media Storage App", что очистило мою галерею, но при перезагрузке не выполнил повторное сканирование (или, по крайней мере, не получил никаких результатов). Поскольку это S6 Edge, в нем нет SD-карты, поэтому не должно быть проблем с монтированием диска (хотя это не имеет смысла, поскольку новые файлы находятся в том же месте, что и старые).
Мне удалось найти пару человек с похожей проблемой на AE, но они'не получили ответа, смотрите здесь и здесь.
Есть ли какой-то отладочный журнал, который я могу создать и куда-то загрузить? Может ли это быть конкретная комбинация приложений, которая у меня есть, так как есть минимальное количество людей с такой же проблемой?
Я буду благодарен за любые идеи, так как это сводит меня с ума!
Заранее спасибо,
Адам.
EDIT: Я подключил свой телефон к компьютеру и запустил adb logcat, но журнал огромный, и я не уверен, что я ищу. Следующая ошибка появляется довольно часто:
< 6>[18330.193843] [6:MediaScannerSer:22775] binder: 3874:22775 transaction failed 29189, size 416-0
Если есть конкретный бит в журнале, который был бы полезен, пожалуйста, дайте мне знать, и я'сделаю все возможное, чтобы извлечь его.
EDIT 2: Есть ли процедура, которой я могу следовать, чтобы создать отчет об ошибке, который я могу затем отправить в Google или Samsung?
Обновленный ответ:
Проверьте, есть ли в памяти устройства (папка хранения) скрытый файл с именем .nomedia (дважды проверьте, чтобы имя было в верхнем регистре) и удалите его.
Перейдите в Настройки > Приложения -> ВСЕ -< Медиахранилище. Выберите Очистить данные + Очистить настройки по умолчанию. Отключите приложение.
Перезагрузите устройство. Теперь снова включите Настройки > Приложения -> ВСЕ -< Медиахранилище. Подождите пару минут (чтобы произошла переиндексация файлов). Думаю, теперь все файлы должны быть снова в Галерее. Примечание: Не пытайтесь запустить какое-либо приложение для повторного сканирования, просто выполните описанные выше действия.
Старый ответ:
Ошибка, которую вы получили в logcat, связана с конкретной функцией обработки/масштабирования изображений. Это известный факт: Буфер транзакций Binder имеет ограниченную и фиксированную память (1MB). Этот буфер используется всеми транзакциями и разделяется между процессами. Например, если у вас есть большое количество больших файлов изображений, и некоторые из них повреждены (либо из-за плохой передачи через компьютер и устройство, компьютер и SD-карту, и так далее), либо некоторые из них не распознаются вашим приложением (в вашем случае Gallery), когда это приложение попытается создать эскизы или превью для ваших файлов и фактически уменьшить/увеличить один из этих файлов, процесс может завершиться неудачей.
То же самое может произойти с рядом файлов (например, рингтоны или .wav
файлы, или .ogg
, или любой тип музыки), которые имеют проблемы либо в содержании, либо в размере, либо в подписи.
Поскольку вы сказали, что проблема возвращается, я подозреваю такое странное поведение ваших приложений. Я даже не думаю об ошибке в ядре или чем-то подобном.
Так что, для вашей же безопасности:
Примите во внимание и такой факт: изображение .gif
, .jpg
, .png
или любое другое, которое у вас есть, может отображаться как 'правильное' на вашем компьютере или устройстве, но на самом деле может иметь 'плохое' содержание (нарушенное содержание). Помните, что все операции, связанные с обработкой изображений внутри вашего Android-устройства, основаны на их сжатии/декомпрессии (для наиболее распространенных операций), и эти операции выполняются 'бит за битом', если можно так выразиться. Принуждение приложения к отображению неправильного типа или содержимого (неправильной высоты/ширины/длины файла) должно выдать TransactionTooLargeException (это то, что MediaScanner бросает в logcat).
Скорее всего, это медиасканер. Дело в том, что на современных версиях android очень мало приложений для медиасканера в play store (особенно для lollipop) и поэтому большинство приложений будут либо сбоить, либо просто не работать. Поэтому лучше всего попробовать некоторые приложения и посмотреть, работают ли они, используя пробные версии (я лично не использую lollipop, поэтому не могу проверить). Например, попробуйте это приложение?
Кроме того, вы можете попробовать запустить медиа-сканер через adb->
adb shell am broadcast android.intent.action.MEDIA_MOUNTED
Еще один способ - зайти в настройки и очистить данные и кэш для приложения галереи, чтобы оно заново проанализировало все медиафайлы.