Lollipop AppCompat-v7 21 — тема атрибута уже определена

Я хотел обновить свой проект для поддержки Android Lollipop и API 21, поэтому я изменил версию AppCompat в зависимостях на 21.0.0, а целевой SDK — на 21.

Но теперь, когда я пытаюсь синхронизировать проект с файлами gradle, он дает мне 102 errors, которых раньше не было:

1 ошибка "Attribute 'theme' has already defined" - указана в моем файле colors.XML,

и еще 101 ошибка "no resources found that matches the given name..." - большинство из них Материальные - предоставлены "build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0/res/values-v11/values.XML".

Уже обновлены все инструменты SDK в программном обеспечении Android SDK с использованием бета-версии Android Studio 0.8.9.

Кто-нибудь может помочь? Спасибо.


person user3184899    schedule 17.10.2014    source источник
comment
stackoverflow.com/questions/26431676/   -  person CommonsWare    schedule 17.10.2014
comment
обновите свой SDK в соответствии с вопросом/ответом, указанным выше   -  person gMale    schedule 17.10.2014


Ответы (6)


У меня тоже была первая проблема. Это можно исправить, обновив зависимость Служб Google Play до версии 6.1.+.

В Gradle (который, я надеюсь, вы используете) это: скомпилировать 'com.google.android.gms:play-services:6.1.+'

Что касается второй проблемы - как люди сказали в комментариях, вы должны убедиться, что ВСЕ компоненты в вашей установке SDK обновлены.

person tilal6991    schedule 17.10.2014
comment
Большое спасибо! Я изменил зависимость сервисов Google Play, и это сработало! - person user3184899; 18.10.2014
comment
Я обновил все компоненты и не пользуюсь сервисами GPlay, но он все еще не работает... У вас есть другая идея? РЕДАКТИРОВАТЬ: изменил все мои другие зависимости, заменив номера версий на +, и это работает. Обратите внимание, что это всего лишь временное исправление - person MathieuMaree; 18.10.2014
comment
@ tilal6991 Для меня ни один из приведенных выше ответов не работает, включая комментарии. Я даже пытался изменить свои инструменты сборки, но это не дало никаких результатов. ЭээээээээээээЛП!!!! :С - person Seïfane Idouchach; 02.11.2014
comment
@SeïfaneIdouchach убедитесь, что он не определен где-либо еще в вашей attrs.xml или какой-либо сторонней зависимости, которая определяет theme в файле атрибутов. - person Chris.Jenkins; 10.11.2014
comment
У меня были очень похожие проблемы. Решил их, обновив мои подмодули до последних версий библиотек Google Play Services, AppCompat и Support. - person Nestor Ledon; 19.02.2015

У меня была такая же проблема, но обновление до последних версий не помогло.

Но сообщение об ошибке Attribute “theme” has already been defined изменилось на Attribute “layout” has already been defined

В изменениях сервисов Google Play я нашел это

  <declare-styleable name="WalletFragmentOptions">
         <!-- Theme to be used for the Wallet selector -->
-        <attr name="theme" format="enum">
+        <attr name="appTheme" format="enum">

И это ключ.

Если у вас в attr.xml есть атрибуты theme или layout или может что-то еще - переименуйте. Кажется, слияние не может справиться с этим.

person Fedor Kazakov    schedule 27.10.2014

Gradle в студии Android предлагает последнюю версию com.google.android.gms:play-services. После обновления до последней версии проблема решилась.

скомпилировать 'com.google.android.gms:play-services:8.3.0'

person Vikas    schedule 10.12.2015

Иногда библиотека, которую вы используете, имеет этот атрибут. Я использовал библиотеку Sliding Up Panel и получил следующую ошибку во время сборки. У меня были следующие элементы в моих библиотеках зависимостей:

dependencies {
    compile 'com.android.support:appcompat-v7:20.0.0'
    compile 'com.sothree.slidinguppanel:library:+'
    // ...
}

Я исправил свою проблему, удалив скользящую библиотеку :(

person Hesam    schedule 03.12.2014
comment
Эта проблема в SlidingUpPanel теперь исправлена. - person tokudu; 05.12.2014

После добавления новой активности в мой проект кажется, что Android Studio автоматически обновила мои зависимости, после чего начала появляться эта ошибка.

Я изменил следующие зависимости на последние библиотеки совместимости:

compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.3'

к тем, которые были у меня в моем gradle.build до того, как Studio отредактировала его, не спрашивая меня:

compile 'com.android.support:support-v4:20.0.0'
compile 'com.android.support:appcompat-v7:20.0.0'

Затем позвольте Studio выполнить синхронизацию, и ваша сборка должна работать.

person Benjamin Piette    schedule 19.02.2015

Для пользователей Eclipse:

  • используйте принятый ответ от tilal6991
  • но имейте в виду, что впоследствии вам придется повторно импортировать проект службы Google Play.

Потому что, если вы следовали рекомендации по установке gps, у вас есть только его копия в вашей рабочей области, которая не будет обновляться.

person Murmel    schedule 22.12.2015