Intereting Posts

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 строк, как показано выше, это будет беспорядочно. Есть ли другой способ решить эту проблему?

Solutions Collecting From Web of "Error: Атрибут «***» уже определен при использовании двух библиотечных проектов в Android"

Правильный способ решения этой проблемы – обновить библиотеки поддержки Android во всех соответствующих проектах и ​​библиотечных проектах. В моем случае я использовал библиотеку поддержки Android, а также один из проектов библиотеки для реализации моего приложения. Когда я обновляю обе библиотеки, проблема решена. Способ обновления поддержки Android-библиотеки;

  • Щелкните правой кнопкой мыши по проекту
  • Выберите Android-инструменты из всплывающего окна
  • Выберите Добавить библиотеку поддержки

Удалите проект библиотеки поддержки appcompact из свойства => Android

Gradle Resource Merger объединяет все папки ресурсов из всех зависимостей и помещается в одну папку. В случае, если процесс создания дубликатов будет терпеть неудачу.

К счастью, если вы посмотрите ниже в разделе Output: label, вы найдете правильный путь к проблеме.

Вот пример

Введите описание изображения здесь

В вашем случае это android-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined

Вы также можете создать свой проект из командной строки и получить правильный путь. AttributeName Внутри values\attrs.xml файл в строке 476 вы найдете свойство с именем "attributeName". Скорее всего, это ваш собственный стиль, который вы должны изменить, чтобы избавиться от дубликата.

Итак, теперь, когда вы знаете причину, вы можете найти это свойство в своем проектном модуле и заменить его другим именем.

Я решил это, удалив appcompact из проекта и изменив стили на

 <style name="AppBaseTheme" parent="Theme.Sherlock"> 

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