Ошибка Android Duplicate Resources
Я очень новичок в разработке Android и разрабатываю свое первое приложение, когда получил эту ошибку
Error:Error: Duplicate resources: E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.png:drawable-hdpi-v4/login_bg, E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.9.png:drawable-hdpi-v4/login_bg
Error:Execution failed for task ':app:mergeDebugResources'.
> E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.png: Error: Duplicate resources: E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.png:drawable-hdpi-v4/login_bg, E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.9.png:drawable-hdpi-v4/login_bg
Я не могу правильно понять ошибку. Какой файл дублируется здесь? Что я должен сделать, чтобы исправить это?
P.S. Пользовательский интерфейс был разработан моим frnd, который является разработчиком пользовательского интерфейса, а затем отправил мне по почте проект, в котором я теперь должен добавить код и функциональность, поэтому мне становится трудно попытаться выяснить, что может быть возможной ошибкой.
Ответы
Ответ 1
То, что Android считает, что при сопоставлении изображений в ваших макетах одно и то же:
E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.png
E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.9.png
login_bg.9.png
image сообщает Android, что это изображение является 9-патч-изображением. В то время как другое изображение, login_bg.png
, является обычным образом. Но с точки зрения ссылок на изображения они объявляются одинаковыми, как в следующих примерах.
Нормальное изображение:
<ImageView
android:id="@+id/normalImage"
android:background="@drawable/login_bg"/>
Изображение Nine-patch:
<ImageView
android:id="@+id/ninePatchImage"
android:background="@drawable/login_bg"/>
Примечание. Нет никакой разницы в ссылках на изображения из вашего каталога /res/drawables
вашего проекта Android.
См. здесь для получения дополнительной информации об изображении с девятью патчами, или для правильного термина для него доступно девять патчей. Для справки, 9-патч-чертежи должны быть объявлены как <name>.9.png
, как в login_bg.9.png
.
Ответ 2
в основном это произойдет, когда xml обнаруживает несколько файлов с тем же именем, независимо от их типа расширения.
например:
mypicture.jpg
не может находиться в одной папке каталога с mypicture.png
поэтому ваш случай, login_bg.9.png
и login.png
в той же папке каталога не разрешен.
надеюсь, это может быть полезно. иметь хороший день
Ответ 3
Я решил эту проблему, переименовав оба файла с разными именами.
Ответ 4
Удалите изображение из каталога для рисования, потому что вы используете один и тот же каталог имени в одной папке, что недопустимо.
Ответ 5
Использование Ant вместо Gradle, похоже, решило проблему для меня. Многие из моих файлов имеют одинаковые имена файлов, чтобы начать с другого расширения (индексированные файлы ресурсов разных типов). Древний проект, и древнее решение работало на меня.
Ответ 6
Решил это, перейдя в:
Build ➞ Clean Project
Удачи!!