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.
Может ли кто-нибудь помочь? Спасибо.
Ответы
Ответ 1
У меня была первая проблема. Это можно устранить, обновив зависимость Google Play Services до 6.1. +.
В Gradle (который, я надеюсь, вы используете):
compile 'com.google.android.gms: play-services: 6.1. +'
Что касается второй проблемы - как говорится в комментариях, вы должны убедиться, что ВСЕ компоненты вашей установки SDK обновлены.
Ответ 2
У меня была такая же проблема, но обновление до последних версий не помогло.
Но сообщение об ошибке Attribute "theme" has already been defined
изменилось на Attribute "layout" has already been defined
В настройках Google Play Services я нашел это
<declare-styleable name="WalletFragmentOptions">
<!-- Theme to be used for the Wallet selector -->
- <attr name="theme" format="enum">
+ <attr name="appTheme" format="enum">
И это ключ.
Если у вас есть атрибуты attr.xml тема или макет или, возможно, что-то еще - переименуйте его. Кажется, слияние не справляется с этим.
Ответ 3
Gradle в студии Android предлагает последнюю версию com.google.android.gms:play-services
.
После обновления этой версии до последней версии проблема была решена.
compile 'com.google.android.gms:play-services:8.3.0'
Ответ 4
Иногда библиотека, которую вы используете, имеет этот атрибут. Я использовал панель "Скользящая панель" , и во время сборки я получил следующую ошибку. У меня были следующие элементы в моих библиотеках зависимостей:
dependencies {
compile 'com.android.support:appcompat-v7:20.0.0'
compile 'com.sothree.slidinguppanel:library:+'
// ...
}
Я исправил свою проблему, удалив скользящую библиотеку: (
Ответ 5
После добавления нового действия в мой проект, похоже, что 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 сделает синхронизацию, и ваша сборка должна работать.
Ответ 6
Для пользователей Eclipse:
Потому что, если вы следовали рекомендациям по установке gps, у вас есть только его копия в рабочей области, которая не будет обновляться.