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

Автоматически очень сложно. Вы можете помочь, используя правильную семантику.

Это заставит Google лучше понять структуру вашего сайта.

Когда ваш сайт состоит из статических страниц, вы можете сами создать карту сайта. Если он создан с помощью базы данных, вы можете сделать это программно. Это будет нелегко, если у вас нет опыта.

Если вы используете CMS, например Wordpress или Drupal, или ... вы, вероятно, можете сгенерировать его с помощью плагина. Используйте Google для этого!

372
задан Jon Douglas 16 December 2014 в 18:07
поделиться

14 ответов

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


Предварительные требования

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

Picture of the SDK Manager


Android Studio

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

android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

После этого обязательно синхронизируйте ваш проект.

Android Studio Gradle Sync reminder


Eclipse

При использовании 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 во время выполнения )

Когда вы ' пытаясь построить проект, вы столкнетесь с проблемами в папках 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 Platform из выпадающего меню -> Применить

Select API 21 Platform

Затем просто пересоберите проект (Build -> Rebuild Project) и вы хорошо идти.

595
ответ дан Community 16 December 2014 в 18:07
поделиться
  • 1
    Предложение просто означает «перетащить их туда, где они принадлежат». – Josh Caswell 13 March 2018 в 19:25
  • 2
    Предложение просто означает «перетащить их туда, где они принадлежат». – Josh Caswell 13 March 2018 в 19:25
  • 3
    Предложение просто означает «перетащить их туда, где они принадлежат». – Josh Caswell 13 March 2018 в 19:25
  • 4
    Предложение просто означает «перетащить их туда, где они принадлежат». – Josh Caswell 13 March 2018 в 19:25
  • 5
    Предложение просто означает «перетащить их туда, где они принадлежат». – Josh Caswell 13 March 2018 в 19:25

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

classpath 'com.android.tools.build:gradle:0.13.+'
2
ответ дан avianey 16 December 2014 в 18:07
поделиться
  • 1
    Я изменил название с & quot; исключить & quot; на "исключить файлы" и это работает. – dkneller 14 December 2016 в 15:20
  • 2
    Я изменил название с & quot; исключить & quot; на "исключить файлы" и это работает. – dkneller 14 December 2016 в 15:20
  • 3
    Я изменил название с & quot; исключить & quot; на "исключить файлы" и это работает. – dkneller 14 December 2016 в 15:20
  • 4
    Я изменил название с & quot; исключить & quot; на "исключить файлы" и это работает. – dkneller 14 December 2016 в 15:20
  • 5
    Я изменил название с & quot; исключить & quot; на "исключить файлы" и это работает. – dkneller 14 December 2016 в 15:20

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

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

2
ответ дан Brendon Sled 16 December 2014 в 18:07
поделиться

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

2
ответ дан DoruChidean 16 December 2014 в 18:07
поделиться

Я столкнулся с этой проблемой с play-services: 5.0.89. Обновление до 6.1.11 решило проблему.

10
ответ дан pepyakin 16 December 2014 в 18:07
поделиться

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

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

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

2) Решил возникшие проблемы, обычно ошибка в menu.xml

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

1
ответ дан tricknology 16 December 2014 в 18:07
поделиться

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

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

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

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

2
ответ дан mili 16 December 2014 в 18:07
поделиться

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

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

2
ответ дан formica 16 December 2014 в 18:07
поделиться

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

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

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

Android Studio SDK Manager

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

Редактировать: Для Eclipse или обычных пользователей IntelliJ

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

123
ответ дан loeschg 16 December 2014 в 18:07
поделиться

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

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

Баночка попала в папку Зависимости Android , и эта ошибка была исправлена.

3
ответ дан live-love 16 December 2014 в 18:07
поделиться

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

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

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

12
ответ дан vandus 16 December 2014 в 18:07
поделиться

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

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

1.Право Нажмите на библиотеку appcompat_v7 и выберите Свойства

2.Теперь, Нажмите «Опция Android», установите «Путь сборки проекта» в качестве Android 5.0 (уровень API 21), «Применить изменения».

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

4. Установите цель проекта как: target = android-21

5. Теперь очистите + создайте библиотеку appcompat_v7 и ваши проекты`

22
ответ дан madhu sudhan 16 December 2014 в 18:07
поделиться

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

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

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

-Загрузите ADT

-Сделайте защитную копию вашего проекта.

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

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

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

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

  4. Щелкните правой кнопкой мыши libs / folder> Buil Path> Configure Build Path и отметьте эти два JARS> OK

  5. На верхней панели затмений> Project> Clean

  6. Импорт проекта> Файл> Импорт> Просмотр проекта> Готово

  7. Теперь щелкните правой кнопкой мыши файл проекта и android-support-v7-appcompat> Свойства> Android> и выберите последний отображаемый API> OK

  8. Щелкните правой кнопкой мыши файл проекта> Свойства> Android> Добавить> android-support-v7-appcompat

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

2
ответ дан juldeh 16 December 2014 в 18:07
поделиться

В 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.+'
}
8
ответ дан Gianfranco P. 16 December 2014 в 18:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: