Ошибка значка Android - папка не видна?

Я создал папки:

app_name/res/drawable-hdpi
app_name/res/drawable-mdpi
app_name/res/drawable-ldpi

Я поставил иконки 72х72 в hdpi, 48х48 в mdpi и 36х36 в ldpi. Я назвал иконки png: icon.png

Я скомпилировал и запустил его, и значки не изменились. Затем я перешел к AndroidManifest.xml и изменил параметр значка:

<application
        android:icon="@drawable-ldpi/icon"
...

Однако я получаю эту ошибку:

Ошибка: не найден ресурс, соответствующий заданному имени (на значке со значением '@drawable-ldpi/icon'). AndroidManifest.xml

Какие-нибудь советы?


person Ron I    schedule 19.04.2012    source источник
comment
Возможно, вам потребуется добавить res.srcDirs в sourceSets › main в файле build.gradle. См. решение здесь - stackoverflow.com/a/17097436/857681. У меня была такая же проблема, и это исправило ее. После изменения запустите gradle clean && gradle build в корне вашего проекта.   -  person speedynomads    schedule 25.07.2013


Ответы (2)


добавление dpi к рисунку недопустимо. Вы должны просто установить его так в манифесте:

<Application
  ...
  android:icon="@drawable/ic_launcher" > 
  <!-- change ic_launcher to whatever your png is named -->

Типичная структура папок выглядит следующим образом:

/
  AndroidManifest.xml
  /res
    /drawable-ldpi
      ic_launcher.png       # 36x36
    /drawable-mdpi
      ic_launcher.png       # 48x48
    /drawable-hdpi
      ic_launcher.png       # 72x72

После того, как вы это сделаете, вам, вероятно, потребуется выполнить очистку (eclipse -> project -> clean), но вы узнаете, что она прошла успешно, если в вашем файле /gen/R.java появится такая строка:

public static final int ic_launcher = 0x...;

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

И последнее замечание: иногда кажется, что эмулятор цепляется за старый значок — очистка должна заставить его измениться, но если это не так, зайдите в настройки и удалите приложение, а затем снова запустите из eclipse, все должно ДЕЙСТВИТЕЛЬНО быть чистым (то же самое относится и к реальным устройствам)

ПРИМЕЧАНИЕ ответ теперь включает комментарии ниже

person JRaymond    schedule 19.04.2012

убедитесь, что вы обновили свой проект Android. Вы можете попробовать изменить имя ваших файлов значков на «ic_launcher.png», которое используется сейчас.

person Alan Moore    schedule 19.04.2012
comment
Спасибо. Однако мы должны предоставлять разные размеры изображений для экранов с разным разрешением. Я бы хотел избежать этого решения и использовать правильно поддерживаемое. Странный. - person Ron I; 20.04.2012
comment
Кроме того, как мне «обновить» мой проект Android? Вы имеете в виду запустить его снова? - person Ron I; 20.04.2012
comment
Если вы щелкните правой кнопкой мыши свой проект в проводнике пакетов слева, вы можете выбрать «Обновить», и он должен найти все новые файлы, которые вы добавили или обновили. - person woodstock365; 20.04.2012
comment
Благодарность! :) не отображается значок по умолчанию, но также не отображается значок, который я поместил в папку, ха-ха. - person Ron I; 20.04.2012
comment
Вы пытались изменить имя файла значка и удалить строку из файла манифеста? - person Alan Moore; 20.04.2012
comment
Можете ли вы поместить свой файл манифеста в свой исходный вопрос, я не очень хорошо могу прочитать его в комментарии. Кроме того, мне непонятно, пытались ли вы когда-нибудь менять имена файлов значков с icon.png на ic_launcher.png — ваши комментарии предполагают, что вы этого не делали. - person Alan Moore; 21.04.2012