Appcompat-v7: 21.0.0 ': не найден ресурс, который соответствует указанному имени: attr' android: actionModeShareDrawable '

При попытке использовать последнюю версию библиотеки поддержки appcompat-v7 в моем проекте, я получаю следующую ошибку:

/Users/greg/dev/mobile/android_project/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0/res/values-v11/values.xml
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.

Как это исправить?

Ответ 1

В то время как ответ loeschg абсолютно прав, я просто хочу рассказать об этом и дать решение для всех IDE (Eclipse, IntellJ и Android Studio), даже если ошибки немного различаются.


Prerequirements

Убедитесь, что вы загрузили последнюю версию extras, а также Android 5.0 SDK через SDK-Manager.

Picture of the SDK Manager


Android Studio

Откройте файл build.gradle вашего приложения-модуля и измените ваш compileSdkVersion на 21. В основном нет необходимости изменять targetSdkVersion SDK-версию до 21, но рекомендуется, так как вы всегда должны настроить последнюю версию сборки Android версии.
В итоге вы gradle -file будут выглядеть так:

android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

Обязательно выполните синхронизацию проекта.

Android Studio Gradle Sync reminder


Затмение

При использовании v7-appcompat в Eclipse вы должны использовать его в качестве проекта библиотеки. Недостаточно просто скопировать *.jar в вашу папку /libs. Прочтите этот (щелчок) пошаговый учебник на developer.android.com, чтобы узнать, как правильно импортировать проект.

Как только проект будет импортирован, вы поймете, что некоторые папки в папке /res подчеркнуты красным цветом из-за таких ошибок, как:

Errors in Eclipse

error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material'.
error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.*'
error: Error: No resource found that matches the given name: attr 'android:actionModeShareDrawable'.

Решение

Единственное, что вам нужно сделать, это открыть файл project.properties android-support-v7-appcompat и изменить цель с target=android-19 на target=android-21.
Затем просто выполните Project --> Clean..., чтобы изменения вступили в силу.


IntelliJ IDEA (не используя Gradle)

Совместимо с Eclipse недостаточно использовать только android-support-v7-appcompat.jar; вам нужно импортировать appcompat в качестве модуля. Узнайте больше об этом на StackO-Post (нажмите).
( Примечание: Если вы используете только .jar, вы получите NoClassDefFoundErrors в Runtime)

Когда вы пытаетесь создать проект, вы столкнетесь с проблемами в папках res/values-v**. В окне вашего сообщения будет указано примерно следующее:

Error:android-apt-compiler: [appcompat]  resource found that matches the given name: attr 'android:colorPrimary'.
Error:(75, -1) android-apt-compiler: [appcompat] C:\[Your Path]\sdk\extras\android\support\v7\appcompat\res\values-v21\styles_base.xml:75: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'.
// and so on

Решение

Щелкните правой кнопкой мыши по модулю appcompat → Открыть настройки модуля (F4) → [вкладка зависимостей] Выберите платформу Android API 21 из выпадающего меню → Применить

Select API 21 Platform

Затем просто перестройте проект (Build → Rebuild Project), и вы хорошо пойдете.

Ответ 2

Скорее всего, потому, что вы не установили compileSdkVersion в 21 файл build.gradle. Вероятно, вы также захотите изменить свой targetSdkVersion на 21.

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

Для этого вам необходимо сначала загрузить последние обновления SDK.

Android Studio SDK Manager

После того, как вы загрузили все обновления (не забудьте также обновить библиотеку поддержки/репозиторий поддержки Android!) и обновили вашу команду compileSdkVersion, повторно синхронизируйте ваш проект Gradle.

Изменить: для пользователей Eclipse или общего пользователя IntelliJ

См. ответ reVerse. Он очень тщательно прогуливается!

Ответ 3

`Выполните следующие шаги:

работает для меня. Чтобы решить эту проблему,

1.Right Щелкните на библиотеке appcompat_v7 и выберите Свойства

2. Теперь, выберите вариант Android, Задайте путь сборки проекта как Android 5.0 (уровень API 21) Применить изменения.

3. Теперь перейдите в файл project.properties в библиотеке appcompat_v7,

4. Задайте цель проекта как: target = android-21

5.Now Clean + Создайте библиотеку appcompat_v7 и ваши проекты

Ответ 4

Если вы не хотите использовать API 21 в качестве целевого API, и поэтому вы не хотите использовать тему материала, вам нужно использовать более старую версию, относящуюся к API 19 >

compile "com.android.support:appcompat-v7:19.0.+"

Это также помогает решить вашу проблему, это зависит только от того, чего вы хотите достичь.

Ответ 5

Я столкнулся с этой проблемой с игровыми сервисами: 5.0.89. Обновление до версии 6.1.11.

Ответ 6

В Android Studio я пытался установить compileSdkVersion и targetSdkVersion на 19.

Мое решение заключалось в замене внизу build.gradle, из этого:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}

В более старую версию библиотеки appcompat:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
}

Ответ 7

Обновление до последнего плагина gradle решает мою проблему:

classpath 'com.android.tools.build:gradle:0.13.+'

Ответ 8

После создания второго проекта в рабочей области в eclipse у меня возникла эта проблема. Я считаю, что это потому, что я создал его с другой версией SDK, и это овело библиотеку android-support-v7-appcompat.

Я пытался очистить все, но безрезультатно. В конечном итоге, предлагаемое выше решение для редактирования project.properties и изменения target = android-21 и установки моего проекта на Android 5.0, исправлено.

Ответ 9

Что я рекомендую: (Это работает со мной после многих дней с ошибками)

-Убедитесь, что вы скачали:

- the Lastest SDK Platform from the latest Android version
- Android Suppor Librarie and Repository from EXTRAS 

-Redowload ADT

-Сделайте копию своей копии безопасности.

-Вы должны иметь ADT, рабочее пространство и проект, которые мы будем импортировать на один и тот же диск (например, C:/)

  • Теперь удалите приложение и ваш проект.

  • В eclipse: Файл > Импорт > Существующий проект Android > Далее > Обзор (папка с вашим ADT)/sdk/extras/android/v7/appcompat > Импорт > Готово

  • Теперь в eclipse Package Explorer: android-support-v7-appcompat/libs/Make на двух JARS: Щелкните правой кнопкой мыши > Путь сборки > Добавить в путь сборки

  • Щелкните правой кнопкой мыши папку libs/folder > Buil Path > Настроить путь сборки и проверьте два JARS > OK

  • На верхней панели затмения > Проект > Очистить

  • Импортируйте проект > Файл > Импорт > Просмотрите проект > Готово

  • Теперь щелкните правой кнопкой мыши файл проекта и android-support-v7-appcompat > Свойствa > Android > И выберите последний API, который появится > ОК

  • Щелкните правой кнопкой мыши файл проектa > Свойствa > Android > Добавить > Поддержка android-v7-appcompat

  • На верхней панели затмения > Проект > Очистить

Ответ 10

Я получил ту же ошибку, когда я изменил версию SDK компиляции из API: 21 в API: 16. Проблема заключалась в версии appcompat. Если вам нужно использовать более старую версию API для Android, вам также придется изменить эту версию appcompat. В моем случае (для API: 16) мне пришлось использовать appcompat-v7: 19. +.

Итак, я заменяю зависимости в build.gradle следующим образом:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
}

И убедитесь, что у вас более старые версии приложений appomppat на вашем SDK enter image description here

Ответ 11

Я был в курсе всего и все еще получил эту ошибку, не знаю почему, но я думаю, что изображение было повреждено странным образом и после замены изображения я избавился от этой ошибки. Возможно, стоит попробовать другой образ:)

Ответ 12

Я добавил еще один проект в свое рабочее пространство и пытался ссылаться на него из файла манифеста, и я получал эту ошибку. Проблема в том, что я неправильно ссылался на библиотеку. Вот как я исправил проблему:

  • Щелкните правой кнопкой мыши по проекту
  • Выберите "Свойства"
  • Нажмите на Android в меню слева
  • Нажмите "Добавить"
  • Выберите проект библиотеки

Яйца вошли в папку Android Dependencies, и эта ошибка была исправлена.

Ответ 13

Убедитесь, что вы очищаете свой проект в студии Android (или затмении),

Он должен решить ваши проблемы

Ответ 14

Моя проблема заключалась в том, что у меня были другие библиотеки, на которые ссылался мой проект, и в этих библиотеках была указана другая версия appcompat. Это то, что я сделал для решения проблемы:

(Прежде чем делать это, вы должны создать резервную копию своего проекта)

1) Я удалил все папки компоновки appcompat (например:/res/layout-v11).

2) Исправлены проблемы, возникшие из-за этого, как правило, ошибка в menu.xml

3) Вернитесь к основному проекту и добавьте библиотеку appcompat, очистите и все будет работать!