ошибка: атрибут *** уже был определен при использовании двух библиотечных проектов в Android

Я использую android-support-v7-appcompat в качестве библиотеки в своем проекте Android. Теперь я хочу включить actionbarsherlock в качестве еще одного проекта библиотеки. Когда я добавляю вторую библиотеку, она выдает так много ошибок, как показано ниже.

android-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined

Изменение одного значения атрибута и связанного с ним фрагмента кода — это одно из решений, которое я пробовал. Но когда будет почти 80 строк, как показано выше, это станет беспорядочным. Есть ли другой способ решить эту проблему?


person AnujAroshA    schedule 15.11.2013    source источник
comment
Это не ответ. Но в моем случае я использовал обе библиотеки выше, чтобы получить функции ActionBar. Поэтому я удалил android-support-v7-appcompat и продолжил.   -  person AnujAroshA    schedule 18.11.2013


Ответы (5)


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

  • Щелкните правой кнопкой мыши проект
  • Выберите Инструменты Android во всплывающем окне.
  • Выберите Добавить библиотеку поддержки.
person AnujAroshA    schedule 29.01.2014
comment
Это не работает для меня. Я пытаюсь сделать то же самое, что и AnujAroshA, используя android-support-v7-appcompat в качестве библиотеки, а также ActionBarSherlock. Я получаю ту же ошибку. Я обновил библиотеки поддержки, как вы предложили (и это я знал), а затем почистил все три проекта. Не повезло. - person marienke; 16.04.2014
comment
Как мне обновить библиотеку, которую я импортирую? Это всего лишь оператор 'скомпилировать библиотеку здесь'. - person Bitcoin Cash - ADA enthusiast; 09.07.2015

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

person HimalayanCoder    schedule 21.09.2014

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

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

Вот пример

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

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

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

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

person dmSherazi    schedule 14.07.2015

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

<style name="AppBaseTheme" parent="Theme.Sherlock">
person Penzzz    schedule 30.04.2014

Я обновил версию инструментов сборки и выполнил повторную синхронизацию, все заработало нормально.

person Amit Garg    schedule 08.02.2017