Drawables не меняется после замены другими в папках - PullRequest
8 голосов
/ 08 декабря 2011

Я создал новый набор тем для своего приложения и решил, что старый мне больше не нужен.Итак, я скопировал мои новые файлы изображений поверх старых, заменив их все.Я сделал это для всех моих папок.Затем я на всякий случай воссоздаю R.java и перестраиваю свое приложение.

По какой-то причине он выбирает старые изображения и отображает их.Хорошо, подумал я, должно быть что-то в памяти / кеше.Я просто сотру образ эмулятора и попробую снова.

После этого приложение все еще использовало старые картинки.Я думал, что, должно быть, ошибся и проверил изображения в Eclipse, но там показывались новые изображения.Затем я принял решительные меры и удалил папки для рисования.Конечно, это привело к тому, что мой проект вышел из строя, поэтому я быстро добавил нужные новые картинки и перестроил проект.Ошибок не обнаружено, и все изображения в Eclipse изменились.

Но при запуске приложения старые картинки все равно показывались.За исключением некоторых частей приложения.Из 70 или около того картинок, которые я использовал, только 2 теперь отображали новую версию.Все остальные по-прежнему показывают старые фотографии.

Что здесь может происходить?Я попытался перезапустить эмулятор, обновить проект, создать новый проект, используя старый в качестве источника, перезапустить телефон, стереть все данные приложения перед установкой приложения, удалить все изображения и заменить их новыми, но ничего не видноработа.

Как приложение, содержащее новые изображения, работающее на полностью новом эмуляторе, может отображать изображения, которые были удалены как минимум часом раньше?

Ответы [ 5 ]

23 голосов
/ 08 декабря 2011

Протрите папку bin , чтобы удалить старые скомпилированные данные.

5 голосов
/ 20 июня 2013

TL; DR: проверьте ваши другие папки drawable-xxxdpi на наличие старых версий!

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

Я заменил res / drawable-hdpi / file.jpg на file.png.Это было другое расширение и имело другое содержание.Eclipse просматривал новую версию, но никакие операции очистки / обновления, удаления приложения или удаления папок bin / gen не заставляли устройство видеть новую версию.

Затем я понял, что у меня есть другие версии:

  • res / drawable-ldpi / file.jpg
  • res / drawable-mdpi / file.jpg
  • res / drawable-xhdpi / file.jpg

После того, как я заменил эти версии версиями file.png с измененным размером, проблема была устранена простым повторным запуском приложения.Похоже, что компилятор ресурсов Android увидел сначала «jpg» версию файла в другой из доступных для рисования папок, а затем проигнорировал последующую «png» версию в drawable-hdpi.Несмотря на то, что устройство, на котором оно работало, имело формат hdpi, оно выводилось из другой папки dpi.

1 голос
/ 02 августа 2015

Если проверка других папок Drawable на наличие старых версий и очистка папок bin и gen не сработали.

Найдите: setImageResource(R.drawable.YourPNG) в вашем коде, который может переопределить чертеж, настроенный в XML из: res / layout / folder.

0 голосов
/ 10 января 2017

Более простое решение - удалить приложение из эмулятора , а затем переустановить, запустив его снова из Android Studio. (Это заставит все обновляться)

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

Если путь к файлу и имена файлов остаются прежними, я думаю, Android не обновляет ваше приложение, даже если новое изображение имеет другой размер.Weird.

0 голосов
/ 18 сентября 2015

Android Studio: Если Clean и Build не работают, попробуйте с

Перейти к File> Invalidate Caches / Restart

или File> Synchronize

у меня оба работали.

...