Подтвердить что ты не робот

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.

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

4b9b3361

Ответ 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, у вас есть только его копия в рабочей области, которая не будет обновляться.