it-swarm.com.ru

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

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

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

Через несколько секунд Gradle заканчивает сборку и выдает мне две ошибки со следующими сообщениями в файле Teste4\app\build\промежуточные/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». 

В File -> Project Project -> Modules: app (левый столбец) -> вкладка Properties, у меня установлены следующие версии:

  • «Compile Sdk Version»: Android 5.1 (API уровень 22)
  • «Версия инструментов сборки»: 23.0.2

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

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

747
Vini.g.fer

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

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

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

1131
Tanis.7x

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

У меня сработало следующее:

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

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

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

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

134
Sourav Nanda

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

Сначала проверьте версию вашего AppCompat в build.gradle (Модуль: приложение)

Enter image description here

Если после изменения на 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 Manager и откройте диалоговое окно.

Enter image description here

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

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

Enter image description here

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

  1. Нажмите приложение из списка.
  2. Нажмите свойства
  3. Измените версию SDK для компиляции на API 23
  4. Измените версию инструментов сборки на 23.0.0

Enter image description here

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

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

113
Ravikant Paudel

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

заменить:

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

в

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

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

Если он по-прежнему не компилируется, иногда полезно установить API-интерфейс compileSdkVersion равным 23, а targetSdkVersion - 22.

70
Pelanes

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

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

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

35
Stucky

Вам нужно установить 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'
}
22
Dharma Sai Seerapu

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

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

 enter image description here

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

 enter image description here

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

15
Elenasys
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'
}
12
dhiku

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

И синхронизировать ваш проект, если это необходимо. 

 enter image description here

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

9
Inzimam Tariq IT

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

 enter image description here

Это поднимало проблему «Android.widget.Material ...» Затем я использовал ту же версию для библиотеки поддержки, как compile 'com.Android.support:appcompat-v7:22.0.1' и его СОВЕРШЕНО. (Показывает вас на скриншоте ниже) 

 enter image description here

9
Naveed Ahmad

Как указывает 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.

8
RWIL

Ваша версия 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, например:  enter image description here

7
Oskar

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

6
Alecs

Я хотел понизить с 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'
}
5
CoolMind

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

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

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

 enter image description here

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

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

Удачи! :)

4
Lentyai

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

3
sonida

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

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

2
Stav Bodik

 SDK Manager

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

1
Ganesh Kanna

в модуле: приложение (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);
    }


}
1
Alex Zaraos

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

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

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

1
Ali Zarei

Обновите Android Studio.

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

1
Matthew Read

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

платформа PhoneGap удалить Android

И добавь это снова.

платформа PhoneGap добавить Android

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

1
Edukondalu Thaviti

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

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

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

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

0
TheBaj