2015-11-05 5 views
1

Недавно я решил включить библиотеку appcompat-v7 в мое приложение, чтобы иметь поддержку материального дизайна, а также использовать новее ActionBarDrawerToggle, поскольку один в support-v4 устарел.Переход на Android-приложение в appcompat v7 вызывает ошибку: атрибут «цвет» уже определен

Мои compileSdkVersion и targetSdkVersion установлены на 23. Варианты для support-v4 и appcompat-v7 установлены на 23.1.0.

Однако, как только я сделал синхронизации на мой проект, я побежал в следующую ошибку:

AGPBI: {"kind":"error","text":"Attribute \"color\" has already been defined","sources":[{"file":"/Users/work/source/android/app.android.whitelabel/WhiteLabelApp/src/main/res/values/config.xml","position":{"startLine":1}}],"original":""}

Оглядевшись, я обнаружил, что многие из них столкнулись с аналогичными проблемами с различными версиями AppCompat библиотеки. И я также понимаю, что эта ошибка указывает на то, что в моем файле config.xml есть color, что противоречит некоторым другим файлам. Но на данный момент ошибка не дает мне никакого представления о том, какой атрибут color противоречит друг другу. Мой файл config.xml также имеет множество таких специфичных для проекта атрибутов color.

Если я удалю библиотеку appcompat-v7, эта ошибка исчезнет.

Любая помощь, пожалуйста?

ответ

0

Ну, в данном конкретном случае проблема с корнем оказалась в том, что файл attrs.xml под папкой values имел специальный тег, который, к сожалению, был назван как color. Это было какое-то унаследованное определение, которое даже не использовалось.

Как-то, включение библиотеки appcompat-v7 вызвало ошибку (интересно, почему support-v4 не было!).

Из-за ситуации, которая разочаровывает и вводит в заблуждение, gradle указал, что ошибка находится в config.xml, тогда как она была в файле attrs.xml!

В конце концов, медленный и утомительный подход к копированию моих файлов res по одному в новую структуру проекта показал, где находится настоящая проблема.

Thanks @Timo за терпеливо пытается помочь мне здесь!

2

Первая попытка удалить, что цвета из config.xml

ли вы определить, где-нибудь еще цвета в файле XML? (Да? -> удалить его)

Это, кажется, проблема ссылок.

+0

Удаление всех экземпляров «цвета» из всех файлов XML кажется грубым взломом этой проблемы. Мое приложение использует варианты, из которых в настоящее время 23. Существует файл 'config.xml' для каждого варианта. Даже когда я удалил все экземпляры 'color' из файла config.xml текущего варианта, ошибка * все еще сохраняется. Я даже создал совершенно новый проект и скопировал тот же файл 'config.xml', не удаляя атрибуты' color', и этот проект скомпилирован/построен просто отлично. – anirvan

+0

Самая неприятная вещь здесь в том, что Android даже не говорит мне, какая конкретная ссылка «color» находится в конфликте! – anirvan

+0

Иногда все проблемы решались путем создания нового проекта и копирования всех файлов из старого. Иначе вы должны попробовать эту «грубую силу». –

 Смежные вопросы

  • Нет связанных вопросов^_^