Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени после обновления до 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\Рез\значения-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 ', но это не сработало.

Ответ 1

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

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

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

Ответ 2

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

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

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

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

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

Изменить v7: 23.0.0 на v7: 22.2.1, как показано выше, и синхронизировать gradle. Это определенно будет работать.

Ответ 3

Когда вы обновляете свой Android Studio, он использует 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 и проверьте, загружен ли Android 6.0 или нет.

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

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

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

  • Выберите приложение из списка.
  • Нажмите свойства
  • Измените версию SDK Compile на API 23
  • Измените версию Build Tools на 23.0.0

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

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

Затем ваша ошибка исчезнет.

Ответ 4

Если вы попытались изменить цель на предыдущую версию 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.

Ответ 5

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

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

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

Ответ 6

Вам необходимо установить для 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'
}

Ответ 7

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

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

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

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

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

и не забывайте проект синхронизации с gradle файлами

Ответ 8

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'
}

Ответ 9

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

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

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

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

Ответ 10

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

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

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

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

Ответ 11

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

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

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

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

To

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

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

Ответ 12

Ваша версия 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, например:  введите описание изображения здесь

Ответ 13

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

Ответ 14

Я хотел отказаться от 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'
}

Ответ 15

Вот что мне помогло: Добавление конкретной платформы Android

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

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

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

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

  2. затем добавьте конкретную платформу Android: cordova platform add [email protected].

Удачи!:)

Ответ 16

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

Ответ 17

Все отлично, но никто из вас не объяснил, где скачать инструменты для сборки SDK

Everything is greate but none of you explained where to download the SDK build tools

Ответ 18

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

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

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

Ответ 19

on module: app (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'
}

project: 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);
    }


}

Ответ 20

Менеджер SDK

Убедитесь, что все это в актуальном состоянии.

Ответ 21

Обновление Android Studio.

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

Ответ 22

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

телефонная платформа удалить андроид

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

телефонная платформа добавить android

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

Ответ 23

Как уже упоминали другие, ваша compile sdk version должна соответствовать основной версии вашей support library's. Это, однако, также актуально для subprojects если они у вас есть.

В этом случае вы можете настроить компиляцию версий SDK для ваших subprojects с помощью следующего скрипта:

subprojects { subproject ->
afterEvaluate{
    if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
        android {
            compileSdkVersion rootProject.ext.compileSdkVersion
            buildToolsVersion rootProject.ext.buildToolsVersion
        }
      }
   }
}

Добавьте этот скрипт в свой корневой файл build.gradle.

Ответ 24

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

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

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