it-swarm.com.ru

Android Studio - запись ресурса уже определена

После компиляции приложения Android с помощью Android Studio (бета-версия) у меня появляется следующая ошибка:

Error:error: Resource entry background is already defined.
res\drawable-xhdpi-v4\background.9.png:0: Originally defined here.

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

Затем я сделал 9-патч-версию и вставил в ту же папку. Это означало, что было 2 файла с одинаковым именем. Поэтому я неудивительно, что у меня была эта ошибка. 

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

22
Yahya Uddin

Вы можете попробовать сделать одно из следующих действий:

  • Очистить и построить или gradle clean build assemble
  • Отменить и перезапустить Android Studio
60
deubaka

1 Построить> Чистый проект  
2 Построить> Перестроить проект

17
Enaoi

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

Ошибка: не удалось выполнить задачу «: app: processDebugResources».

com.Android.ide.common.internal.LoggedErrorException: Не удалось выполнить команду: C:\Users\user\AppData\Local\Android\android-studio\sdk\build-tools\Android-4.4W\aapt.exe package -f --no-crunch -IC:\Users\user\AppData\Local\Android\android-studio\sdk\platform\Android-20\Android.jar -MC:\Users\user\AndroidStudioProjects\DartsApp\app\build\промежуточные звенья\manifest\debug\AndroidManifest.xml -SC:\Users\user\AndroidStudioProjects\DartsApp\app\build\промежуточные\res\debug -AC:\Users\пользователь\AndroidStudioProjects\DartsApp\app\build\промежуточные\assets\debug -m -JC:\Users\пользователь\AndroidStudioProjects\DartsApp\app\build\generate\source\r\debug -FC:\Users\пользователь\AndroidStudioProjects\DartsApp\app\build\middleates\libs\app-debug.ap_ --debug-mode --custom-package com.dartstransit.dartsapp -0 apk --output-text-символы C:\Users\пользователь\AndroidStudioProjects\DartsApp\app\build\промежуточные\символы\отладка

Код ошибки:

1

Результат:

res\drawable-hdpi-v4\bus_w.png:0: error: Resource entry bus_w is already defined.
res\drawable-hdpi-v4\bus_w.jpg:0: Originally defined here.

Как видите, в одной папке два файла с именем bus_w с разными расширениями. Я уже удалил эти файлы из проекта и все еще получаю сообщение об ошибке, поэтому я решил проверить каждую папку проекта, на которую есть ссылка в строке компилятора в сообщении об ошибке. Наконец обнаружил, что в папке app\build\intermediates\res\debug\drawable-mdpi-v4 была копия файла bus_w.png.

Я просто удалил его и вуаля, проблема решена.

9
zaidorx

Простой Build > Перестроить проект помог мне

3
penduDev

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

Я вижу, что многие разработчики (включая меня) тоже имели проблемы с ic_launcher. Я думаю, что вы хотите попробовать mipmap вместо drawable. Итак, у нас будет что-то вроде этого:

\res\mipmap-hdpi
\res\mipmap-mdpi
\res\mipmap-xhdpi
\res\mipmap-xxhdpi

Надеюсь, это поможет.

1
khaintt

Я также недавно столкнулся с этой ошибкой. Вот мое решение, которое работает, надеюсь, оно поможет вам.

1. только сохраняйте 9-версию патча в папке drawable-hdpi

2. убедитесь, что код, связанный с этой проблемой в файле XML, не изменился: Android:background="@drawable/msg_left"

вместо использования кода:

Android:background="@drawable/msg_left.9"

PS: Мое оригинальное имя изображения - msg_left, а мое название версии 9 патча - msg_left.9.

0
Jeffin Bao

В нашем случае проблема начала возникать (ошибка показывает «дублирующее значение для ресурса» в библиотеке), когда какая-то другая библиотека была обновлена ​​до ее последней версии.
Мы только что понизили версию библиотеки, которая была обновлена.

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

Мы пришли к выводу, что не использовать динамическое управление версиями. Не используйте динамические версии для ваших зависимостей

Это была ошибка, кстати: 

Задача: app: generateDebugResources UP-TO-DATE AGPBI: {"kind": "error", "text": "error: дублировать значение для ресурса\u0027attr/itemBackground\u0027 с config\u0027\u0027.", "Sources": [{"file": "/ Users /unknownuser/.gradle/caches/transforms-1/files-1.1/singledateandtimepicker-1.2.2.aar/86ae3786d70c769e610c8a01d58aa638/res/values/values.xml","position":{"startLine":15,"startColumn ": 4, "startOffset": 2427, "endColumn": 48, "endOffset": 2471}}], "оригинальный": "", "инструмент": "AAPT"} AGPBI: {"kind": "error", "text": "error: ресурс, ранее определенный здесь.", "Sources": [{"file": "/ Users/unknownuser/.gradle/caches/transforms-1/файлы-1.1/singledateandtimepicker-1.2.2.aar/86ae3786d70c769e610c8a01d58aa638/RES/значения/values.xml», "положение": { "StartLine": 15, "startColumn": 4, "startOffset": 2427, "endColumn": 48, "endOffset": 2471}}], "оригинальный": "", "инструмент": "AAPT"}

Задача: app: mergeDebugResources FAILED Ошибка: Java.util.concurrent.ExecutionException: com.Android.builder.internal.aapt.v2.Aapt2Exception: ошибка AAPT2: проверьте журналы для получения подробной информации

FAILURE: сборка не удалась, исключение.

0
cgr

Я сделал трюк, переместив значок

drawable/ic_launcher

в 

mipmap/ic_launcher

и все работало нормально :)

0
Miao1007

В моем случае проблема заключалась в том, что у меня было больше одного ». в имени файла. лайк:

a.png
a.bold.png

Решение было переименовать в

a.png
a_bold.png
0
MrSmith42