Error: Атрибут "***" уже определен при использовании двух библиотечных проектов в Android
Я использую поддержку android-support-v7-appcompat в качестве библиотеки в своем Android-проекте. Теперь я хочу включить actionbarsherlock в качестве другого проекта библиотеки. Когда я добавляю вторую библиотеку, она дает так много ошибок, как ниже
android-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined
Изменяя одно значение атрибута, и связанный с ним фрагмент кода - это одно из решений, которое я пробовал. Но когда есть около 80 строк, как показано выше, это будет беспорядочно. Есть ли другой способ решить эту проблему?
Ответы
Ответ 1
Правильный способ решения этой проблемы - обновить библиотеки поддержки Android во всех соответствующих проектах и библиотечных проектах. В моем случае я использовал библиотеку поддержки Android, а также один из проектов библиотеки для реализации моего приложения. Когда я обновляю обе библиотеки, проблема решена. Способ обновления библиотеки поддержки Android:
- Щелкните правой кнопкой мыши по проекту
- Выберите Инструменты Android во всплывающем окне
- Выберите Добавить библиотеку поддержки
Ответ 2
Удалите проект библиотеки поддержки appcompact из Properties = > Android
Ответ 3
Gradle Слияние ресурсов объединяет все папки ресурсов из всех зависимостей и помещается в одну папку. В случае, если процесс создания дубликатов будет терпеть неудачу.
К счастью, если вы посмотрите ниже в методе Output: label, вы найдете правильный путь к проблеме.
Вот пример
![enter image description here]()
в вашем случае это
android-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined
Вы также можете создать свой проект из командной строки и получить правильный путь.
имя атрибута
Внутри файла values\attrs.xml
в строке 476 вы найдете свойство с именем "attributeName". Скорее всего, это ваш собственный стиль, который вы должны изменить, чтобы избавиться от дубликата.
Итак, теперь, когда вы знаете причину, вы можете найти это свойство в своем проектном модуле и заменить его другим именем.
Ответ 4
Я решил это, удалив appcompact из проекта и изменив стили на
<style name="AppBaseTheme" parent="Theme.Sherlock">
Ответ 5
Я обновил версию инструмента сборки и перепрофилировал, он отлично работал.