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, очистите и все будет работать!