При попытке использовать последнюю версию библиотеки поддержки 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'.
Как я могу это исправить?
Ответы:
Хотя ответ loeschg является абсолютно правильным, я просто хочу уточнить его и дать решение для всех IDE (Eclipse, IntellJ и Android Studio), даже если ошибки различаются незначительно.
Предварительно требования
Убедитесь, что вы загрузили последнюю версию,
extras
а такжеAndroid 5.0 SDK
через SDK-Manager.Android Studio
Откройте
build.gradle
файл вашего модуля приложения и измените егоcompileSdkVersion
на 21. В принципе нет необходимости менятьtargetSdkVersion
SDK-версию на 21, но рекомендуется, так как вы всегда должны ориентироваться на последнюю версию Android Build-Version .В итоге ваш gradle-файл будет выглядеть так:
Не забудьте синхронизировать ваш проект после этого.
Затмение
При использовании
v7-appcompat
в Eclipse вы должны использовать его как проект библиотеки. Недостаточно просто скопировать * .jar в вашу/libs
папку. Пожалуйста, прочитайте это (нажмите) пошаговое руководство на developer.android.com , чтобы узнать, как правильно импортировать проект.Как только проект будет импортирован, вы поймете, что некоторые папки в
/res
папке выделены красным цветом из-за таких ошибок, как:Решение
Единственное, что вам нужно сделать, это открыть
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**
папках. Окно вашего сообщения скажет что-то вроде следующего:Решение
Щелкните правой кнопкой мыши на
appcompat
модуле -> Открыть настройки модуля (F4) -> [Вкладка зависимостей]. Выберите Android API 21 Platform из выпадающего меню -> Применить.Затем просто пересоберите проект (Build -> Rebuild Project) и все готово.
источник
Вероятно, это потому, что вы не установили
compileSdkVersion
значение 21 в файле build.gradle. Вы также, вероятно, хотите изменить свойtargetSdkVersion
на 21.Для этого вам необходимо загрузить последние обновления SDK.
После того, как вы загрузили все обновления (не забудьте также обновить библиотеку / репозиторий поддержки Android!) И обновили свой compileSdkVersion, выполните повторную синхронизацию проекта Gradle.
Редактировать: для Eclipse или обычных пользователей IntelliJ
Смотрите ответ ReVerse. У него очень тщательная прогулка!
источник
`Выполните следующие шаги:
это работает для меня. Чтобы решить эту проблему,
1.Право Нажмите на библиотеку appcompat_v7 и выберите Свойства
2.Нажмите «Опция Android», выберите «Путь сборки проекта как Android 5.0» (уровень API 21) «Применить изменения».
3. Теперь перейдите в файл project.properties в библиотеке appcompat_v7,
4. Установите цель проекта как: target = android-21
5.Now Clean + Сборка библиотеки appcompat_v7 и ваших проектов
источник
Если вы не хотите использовать API 21 в качестве целевого API и, следовательно, не хотите использовать тему материала, вам нужно использовать более старую ревизию, принадлежащую API 19>
Это также помогает решить вашу проблему, это зависит только от того, чего вы хотите достичь.
источник
Я столкнулся с этой проблемой с play-services: 5.0.89. Обновление до 6.1.11 решило проблему.
источник
В Android студии я пытался установить
compileSdkVersion
иtargetSdkVersion
в19
.Мое решение было заменить в нижней части
build.gradle
, из этого:Для более старой версии библиотеки appcompat:
источник
Я добавил другой проект в свою рабочую область и пытался ссылаться на действие из него в файле манифеста, и я получал эту ошибку. Проблема в том, что я неправильно ссылался на библиотеку. Вот как я исправил проблему:
Фляга зашла в папку Android Dependencies, и эта ошибка была исправлена.
источник
Убедитесь, что вы очистили свой проект в Android Studio (или Eclipse),
Это должно решить ваши проблемы
источник
Обновление до последней версии Gradle решает мою проблему:
источник
После создания второго проекта в рабочей области в Eclipse у меня возникла эта проблема. Я полагаю, что это потому, что я создал его с другой версией SDK, и это переписало библиотеку android-support-v7-appcompat.
Я пытался все очистить, но безрезультатно. В конечном итоге, предложенное выше, чтобы отредактировать project.properties и изменить target = android-21 и установить мой проект на Android 5.0, исправило это.
источник
Что я рекомендую: (Это работает для меня после многих дней с ошибками)
-Убедитесь, что вы скачали:
-Загрузить ADT
-Сделайте защитную копию вашего проекта.
-Вы должны иметь ADT, рабочую область и проект, который мы будем импортировать на одном диске (например, C: /)
Теперь удалите приложение Compat и ваш проект.
В eclipse: Файл> Импорт> Существующий проект Android> Далее> Обзор (папка, в которой находится ваш ADT) / sdk / extras / android / v7 / appcompat> Импорт> Готово
Теперь в обозревателе пакетов eclipse: android-support-v7-appcompat / libs / Make на двух JARS: щелкните правой кнопкой мыши> Build Path> Add to Build Path
Щелкните правой кнопкой мыши libs / folder> Buil Path> Configure Build Path и отметьте эти два JARS> OK
На верхней панели затмения> Проект> Очистить
Импортируйте ваш проект> Файл> Импорт> Просмотрите ваш проект> Готово
Теперь щелкните правой кнопкой мыши файл проекта и android-support-v7-appcompat> Свойства> Android> И выберите последний появившийся API> OK
Щелкните правой кнопкой мыши файл проекта> Свойства> Android> Добавить> android-support-v7-appcompat
На верхней панели затмения> Проект> Очистить
источник
Я получил ту же ошибку при изменении версии Compile SDK с API: 21 на API: 16. Проблема заключалась в том , AppCompat версии. Если вам нужно использовать более старую версию Android API, то вам также нужно изменить эту версию приложения. В моем случае ( для API: 16 ) мне пришлось использовать appcompat-v7: 19. + .
Поэтому я заменяю зависимости в build.gradle следующим образом:
И убедитесь, что у вас есть более старые версии appcompat версий в вашем SDK
источник
Я был в курсе всего, и все еще получил эту ошибку, не уверен, почему, но я думаю, что изображение было повреждено странным образом, и после замены изображения я избавился от ошибки. Может быть стоит попробовать с другим изображением :)
источник
Моя проблема заключалась в том, что у меня были другие библиотеки, на которые ссылался мой проект, и на эти библиотеки ссылалась другая версия appcompat. Вот что я сделал, чтобы решить эту проблему:
(Вы должны сделать резервную копию вашего проекта, прежде чем делать это)
1) Я удалил все папки макета appcompat (например: / res / layout-v11).
2) Решил возникшие проблемы, обычно ошибка в menu.xml
3) Вернуться в основной проект и добавить библиотеку appcompat, очистить, и все работает!
источник