Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени после обновления до AppCompat v23

Я всегда программировал Android с Eclipse и решил начать переход на Android Studio . Я решил использовать тот же SDK, который у меня уже был для Eclipse, а затем:

  • Начал новый проект
  • Установите минимальный SDK 4.0 (API-уровень 14)
  • Выберите параметр «Пустое действие»
  • Используемые имена по умолчанию для имени активности и имени макета
  • Хит-финиш

Через несколько секунд Gradle завершает сборку, и она бросает мне две ошибки со следующими сообщениями в файле Teste4 \ app \ build \ intermediates / exploded-aar \ com.android.support \ appcompat-v7 \ 23.0.0 \ res \ values -v23 \ значения-v23.xml:

Ошибка: (2) Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени «android: TextAppearance.Material.Widget.Button.Inverse».

Ошибка: (2) Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени «android: Widget.Material.Button.Colored».

В разделе Файл -> Структура проекта -> Модули: приложение (левый столбец) -> вкладка Свойства , у меня установлены следующие версии:

  • «Скомпилировать версию Sdk»: Android 5.1 (уровень API 22)
  • «Версия для сборки»: 23.0.2

Что мне делать, чтобы это исправить?

Я уже пробовал то, что было предложено в вопросе переполнения стека appcompat-v7: 21.0.0 ': ресурс не найден, который соответствует указанному имени: attr' android: actionModeShareDrawable ' , но это не сработало.

Solutions Collecting From Web of "Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени после обновления до AppCompat v23"

Ваша версия SDK для компиляции должна соответствовать основной версии библиотеки поддержки.

Поскольку вы используете версию 23 библиотеки поддержки, вам необходимо скомпилировать ее против версии 23 Android SDK.

В качестве альтернативы вы можете продолжить сборку против версии 22 Android SDK, переключившись на последнюю библиотеку поддержки v22.

Это происходит потому, что после обновлений Android Studio по умолчанию использует API версии 23 .

Следующие работали для меня:

Нажмите Ctrl + Shift + Alt + S, чтобы перейти к странице структуры проекта. Перейдите на вкладку свойств и измените 23.0.0 на 22.0.1 (или эквивалент того, что вы использовали ранее) в области инструмента построения и перестройте свой проект.

Если это не сработает, перейдите в приложение gradle: app, а затем

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

Отредактируйте v7: от 23.0.0 до v7: 22.2.1, как показано выше, и графа синхронизации. Это определенно сработает.

Когда вы обновляете свою Android-студию, по умолчанию используется версия API 23, что является основной причиной ее появления. Так,

Сначала проверьте версию AppCompat в файле build.gradle (Module: app). То есть,

Введите описание изображения здесь

Если после смены на 23 происходит ошибка, тогда просто загрузите

Compile Sdk Version to API 23, and Build Tools Version to 23.0.0

От менеджера SDK. Если он уже загружен, то:

 1. Go to SDK Manager and 2. Under Project Structure, change *Compile SDK Version* to API 23, and *Build Tools Version* to 23.0.0 

Нажмите кнопку «Диспетчер SDK» и откройте диалоговое окно.

Введите описание изображения здесь

Нажмите SDK Platform и проверьте, загружен ли Android 6.0 или нет.

Если нет, то загрузите это в первую очередь. После завершения загрузки нажмите « Применить» .

Введите описание изображения здесь

Теперь вам нужно применить изменения к своему проекту. Затем нажмите Ctrl + Alt + Shift + S, чтобы открыть настройку

  1. Нажмите приложение из списка.
  2. Свойства кликов
  3. Измените версию SDK Compile на API 23
  4. Измените версию Build Tools на 23.0.0

Введите описание изображения здесь

Не забудьте перестроить свой проект.

Тогда ваша ошибка исчезнет.

Если вы попытались изменить цель на предыдущую версию GooglePlayServices или AppCompatv7, и она не работает, проверьте, есть ли у вас зависимость от проектов, этот проект будет нацелен на последнюю версию любой из этих библиотек. Это случилось со мной с проектом библиотеки Google Maps Utils:

заменить:

 compile 'com.google.android.gms:play-services:+' 

в

 compile 'com.google.android.gms:play-services:8.3.0' 

Затем вы можете продолжить полный API таргетинга 22

Если он все еще не компилируется, иногда полезно установить для compileSdkVersion API значение 23 и targetSdkVersion в 22.

Я согласен с предыдущим ответом. Ваша версия SDK для компиляции должна соответствовать библиотеке поддержки. Вот что я сделал.

  1. Вы можете перейти в SDK Manager и под платформой SDK Platform, установить Android 5.X с уровнем API 23.
  2. В разделе «Структура проекта» смените версию SDK версии на API 23 и версию «Инструменты для сборки» до 23.0.0

Тогда он должен строиться без проблем.

Вам необходимо установить для compileSdkVersion значение 23.

Поскольку API 23 Android удалил устаревшие пакеты Apache Http, поэтому, если вы используете их для запросов сервера, вам нужно добавить useLibrary 'org.apache.http.legacy' для build.gradle как указано в этой ссылке:

 android { compileSdkVersion 23 buildToolsVersion "23.0.0" ... //only if you use Apache packages useLibrary 'org.apache.http.legacy' } 

Эта проблема возникает потому, что теперь скомпилированная версия SDK должна соответствовать основной версии библиотеки поддержки Android.

В моем случае у меня есть версия Android Support Library 23, поэтому мне пришлось скомпилировать ее с Android SDK version 23 , и мне пришлось изменить это в файле build.gradle :

Введите описание изображения здесь

Ну, некоторые из вас должны будут установить SDK, Android 6.0 (API 23)

Введите описание изображения здесь

И не забудьте синхронизировать проект с файлами градиентов

 android { compileSdkVersion 23 buildToolsVersion '23.0.1' defaultConfig { applicationId "" minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.code.gson:gson:2.3.1' compile 'com.android.support:recyclerview-v7:23.0.0' compile 'com.android.support:appcompat-v7:23.0.1' } 

Я нашел решение, проблема началась, когда я обновил sdk, после чего я использовал другую buildToolsVersion ('22 .0.1 '), и я использовал другую библиотеку поддержки, такую ​​как compile' com.android.support:appcompat-v7:23.0.0 ' , Показывая вам изображение ниже

Введите описание изображения здесь

Это вызвало проблему « android.widget.Material …» Затем я использовал ту же версию для библиотеки поддержки, как компиляция «com.android.support:appcompat-v7:22.0.1» и ее DONE. (Показывая ниже на снимке экрана)

Введите описание изображения здесь

Как указано Tanis.7x, версия библиотеки поддержки (23) не соответствует targetSdkVersion (22)

Вы можете исправить это, выполнив следующие действия:

В файле build.grade вашего модуля приложения измените следующую строку кода

 compile 'com.android.support:appcompat-v7:23.0.0' 

к

 compile 'com.android.support:appcompat-v7:22.+' 

Это будет использовать последнюю версию версии appcompat, совместимую с SdkVersion 22.

Вы должны скомпилировать свой проект с последней версией, поэтому обновите и установите из своего SDK. Синхронизируйте проект с проектом sync project with Gradle file кнопкой sync project with Gradle file .
Вы также можете продолжить работу с существующей версией, но убедитесь, что она установлена ​​правильно ниже изображения, чтобы указать API 22, который правильно установлен. Введите описание изображения здесь

И при необходимости синхронизируйте свой проект.

Введите описание изображения здесь

Это может помочь.

В моем случае это была более высокая версия Google-play-сервисов. Я установил их в 7.0.0 (не 8.x), и все было в порядке.

Ваша версия SDK для компиляции должна соответствовать основной версии библиотеки поддержки. Это решение вашей проблемы. Вы можете легко проверить это в своих скриптах Gradle в файле build.gradle . Fx: если ваша compileSdkVersion равно 23, ваша библиотека компиляции должна начинаться с 23.

  compileSdkVersion 23 buildToolsVersion "23.0.0" defaultConfig { minSdkVersion 15 targetSdkVersion 23 versionCode 340 versionName "3.4.0" } dependencies { compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:recyclerview-v7:23.0.1' } 

И всегда проверяйте, поддерживает ли ваш Android Studoi поддерживаемый уровень API. Вы можете проверить его в Android SDK, например: Введите описание изображения здесь

У меня такие же проблемы. Я решил свою проблему, обновив gradle.build для каждого подмодуля до последней версии компилятора.

Это помогло мне: добавление специальной платформы для Android

Что нужно сделать, так это следующее … В моем случае это была cordova но то же самое имеет значение для ionic , phonegap и других структур, таких как:

  1. Список всех платформ, установленных для вашего проекта: cordova platform list . Вы увидите что-то вроде этого:

Введите описание изображения здесь

  1. Удалите платформу android: cordova platform remove android .

  2. Затем добавьте конкретную платформу для Android: cordova platform add android@5.0.0 .

Удачи! 🙂

Я хотел отказаться от API 23 до 22 и получил эту ошибку. Мне пришлось изменить все файлы build.gradle в проекте для компиляции.

 android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.yourapp.app" minSdkVersion 14 targetSdkVersion 22 } ... dependencies { compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.android.support:support-v4:22.2.1' compile 'com.android.support:design:22.2.1' compile 'com.google.android.gms:play-services-gcm:10.0.1' } 

Другое решение: перейти к

 \sdk\extras\android\m2repository\com\android\support\appcompat-v7\23.xx 

Открыть файл .aar с 7-zip или winrar, в папке res удалите values-23 и сохраните изменения.

По модулю: приложение (Gradle)

 apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.namepack.nameappxxxxx" minSdkVersion 16 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' } 

Проект: nameAppXXXX (Gradle)

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' } } allprojects { repositories { jcenter() } } 

И отредактируйте свою активность AppCompatActivity, например, Activity:

 package com.namepack.nameappxxxxx; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuItem; public class NameClass extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); } } 

Менеджер SDK

Убедитесь, что все это в порядке.

Обновите Android Studio.

У меня была эта проблема с Android Studio 1.3.1, и ни один из других ответов не работал для меня, но после обновления до 1.5.1 проблем не было.

Если вы используете телефонную кросс-платформу и получили такую ​​же проблему выше, просто удалите платформу Android с помощью команды ниже.

Phonegap platform удалить андроид

И добавьте его снова.

Добавить в корзину

Тогда проблема решена для меня.

Если вы получаете ошибки даже после загрузки новейших SDK и Android Studio, вот что я сделал:

  1. Загрузите последнюю версию SDK
  2. Открыть файл-Структура проекта ( Ctrl + Alt + Shift + S )
  3. В модулях выберите приложение.
  4. На вкладке свойств: измените версию SDK для компиляции в API 23 Android 6.0 marshmallow (последняя версия)

Я надеюсь, что это поможет кому-то, чтобы он не страдал, как я это делал в течение этих двух дней.