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

Я обновил версию инструмента сборки и перепрофилировал, он отлично работал.