web-dev-qa-db-fra.com

Erreur lors de l'extraction du parent pour l'élément: aucune ressource trouvée qui correspond au nom donné après la mise à niveau vers AppCompat v23

J'ai toujours programmé Android avec Eclipse et décidé de migrer vers Android Studio . J'ai décidé d'utiliser le même SDK que j'avais déjà pour Eclipse, puis:

  • Commencé un nouveau projet
  • Définir le SDK 4.0 minimum (API niveau 14)
  • Choisissez l'option Activité vide
  • Utilisé Noms par défaut pour le nom d'activité et le nom de présentation
  • Hit Terminer

Après quelques secondes, Gradle termine la construction et me lance deux erreurs avec les messages suivants dans le fichier Teste4\app\build\intermediates/exploded-aar\com.Android.support\appcompat-v7\23.0.0\res\values -v23\values-v23.xml:

Erreur: (2) Erreur lors de l'extraction du parent pour l'élément: aucune ressource trouvée ne correspond au nom donné «Android: TextAppearance.Material.Widget.Button.Inverse». 

Erreur: (2) Erreur lors de l'extraction du parent pour l'élément: aucune ressource trouvée ne correspond au nom donné «Android: Widget.Material.Button.Colored». 

Sous Fichier -> Structure du projet -> Modules: app (colonne de gauche) -> onglet Propriétés, les versions suivantes sont configurées:

  • "Compiler Sdk Version": Android 5.1 (API niveau 22)
  • "Version des outils de génération": 23.0.2

Que dois-je faire pour résoudre ce problème?

J'ai déjà essayé ce qui avait été suggéré dans la question Stack Overflow - appcompat-v7: 21.0.0 ': Aucune ressource trouvée qui correspond au nom donné: attr' Android: actionModeShareDrawable ', mais cela n'a pas fonctionné.

747
Vini.g.fer

La version de votre SDK de compilation doit correspondre à la version principale de la bibliothèque de support.

Puisque vous utilisez la version 23 de la bibliothèque de support, vous devez compiler avec la version 23 du SDK Android.

Sinon, vous pouvez continuer à compiler avec la version 22 du SDK Android en basculant vers la dernière bibliothèque de support v22.

1131
Tanis.7x

Cela se produit car, après les mises à jour, Android Studio utilise API version 2 par défaut.

Ce qui suit a fonctionné pour moi:

Presse Ctrl + Shift + Alt + S pour accéder à la page de structure du projet. Accédez à l'onglet Propriétés et remplacez 23.0. par 22.0.1 (ou l'équivalent de ce que vous utilisiez précédemment) dans la zone de l'outil de génération et reconstruisez votre projet.

Si cela ne fonctionne pas, allez à gradle: app puis

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

Éditer v7: 23.0. à v7: 22.2.1 comme indiqué ci-dessus et gradateur de synchronisation. Cela fonctionnera certainement.

134
Sourav Nanda

Lorsque vous mettez à jour votre Android Studio, celui-ci utilise l'API version 23 par défaut, ce qui est la principale raison de son apparition. Donc,

Dans un premier temps, vérifiez votre version d'AppCompat dans build.gradle (Module: app), c'est-à-dire

Enter image description here

Si après avoir passé à 23 il se produit une erreur, il suffit de télécharger

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

du gestionnaire de SDK. Si déjà téléchargé, alors:

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

Cliquez sur le bouton Gestionnaire de SDK et ouvrez la boîte de dialogue.

Enter image description here

Cliquez sur SDK Platform et vérifiez si Android 6.0 est téléchargé ou non.

sinon, téléchargez-le d'abord. Une fois le téléchargement terminé, cliquez sur Apply.

Enter image description here

Vous devez maintenant appliquer les modifications à votre projet à partir des paramètres. Puis appuyez sur Ctrl + Alt + Shift + S pour ouvrir le réglage

  1. Cliquez sur l'application dans la liste.
  2. Cliquez sur les propriétés
  3. Changez votre version du SDK de compilation en API 23
  4. Changez votre version de Build Tools en 23.0.0

Enter image description here

N'oubliez pas de reconstruire votre projet.

Ensuite, votre erreur aura disparu.

113
Ravikant Paudel

Si vous avez essayé de remplacer target par une version antérieure de GooglePlayServices ou AppCompatv7 et que cela ne fonctionne pas, vérifiez si vous avez une dépendance de bibliothèque de projet, ce projet ciblera la dernière version de ces bibliothèques. Cela m'est arrivé avec le projet Google Maps Utils Library:

remplacer:

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

à

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

Ensuite, vous pouvez continuer à cibler l'API 22

S'il ne compile toujours pas, il est parfois utile de définir les API compileSdkVersion sur 23 et targetSdkVersion sur 22.

70
Pelanes

Je suis d'accord avec la réponse précédente. Votre version du SDK de compilation doit correspondre à la bibliothèque de support. Voici ce que j'ai fait.

  1. Vous pouvez accéder à SDK Manager et sous SDK Platform, installer Android 5.X avec le niveau 23 de l'API.
  2. Sous Structure du projet, remplacez la version du SDK de compilation par l'API 23 et la version d'outils de génération par 23.0.0.

Ensuite, il devrait construire sans problème.

35
Stucky

Vous devez définir compileSdkVersion sur 23.

Depuis que l'API 23 Android a supprimé les paquets obsolètes Apache Http, vous devez donc utiliser useLibrary 'org.Apache.http.legacy' à build.gradle, comme indiqué dans ce lien:

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

    //only if you use Apache packages
    useLibrary 'org.Apache.http.legacy'
}
22
Dharma Sai Seerapu

Ce problème est dû au fait que la version du SDK de compilation doit correspondre à la version principale de la bibliothèque de support Android.

Dans mon cas, j'ai le Android Support Library version 23, donc je devais compiler avec le Android SDK version 23 et je devais le changer dans mon fichier build.gradle:

 enter image description here

Certains d’entre vous auront besoin d’installer le SDK, Android 6.0 (API 23)

 enter image description here

et n'oubliez pas de Synchroniser le projet avec les fichiers de gradation

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

Vous devez compiler votre projet avec la version la plus récente. Mettez à jour et installez-le à partir de votre SDK. Synchronisez votre projet avec le bouton sync project with Gradle file.
Vous pouvez également continuer avec la version existante, mais vérifiez qu’elle est correctement installée sous l’image indiquant que l’API 22 est correctement installée.  enter image description here

Et synchronisez votre projet si nécessaire. 

 enter image description here

cela peut aider.

9
Inzimam Tariq IT

J'ai trouvé la solution, le problème a commencé quand j'ai mis à jour sdk, après que j'ai utilisé différents buildToolsVersion ('22 .0.1 ') et que j'utilisais différentes bibliothèques support comme compile' com.Android.support : appcompat-v7: 23.0.0 ', vous montrant dans l'image ci-dessous

 enter image description here

Cela posait le problème de "Android.widget.Material ..." Puis j'ai utilisé la même version pour la bibliothèque de support telle que compile 'com.Android.support:appcompat-v7:22.0.1' et son fait. (Vous montrant dans la capture d'écran ci-dessous) 

 enter image description here

9
Naveed Ahmad

Comme indiqué par Tanis.7x, la version de la bibliothèque de support (23) ne correspond pas à targetSdkVersion (22).

Vous pouvez résoudre ce problème en procédant comme suit: 

Dans le fichier build.grade de votre module d'application, modifiez la ligne de code suivante.

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

À 

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

Cela utilisera la dernière version de la version de appcompat compatible avec SdkVersion 22.

8
RWIL

La version de votre SDK de compilation doit correspondre à la version principale de la bibliothèque de support. C'est la solution à votre problème. Vous pouvez le vérifier facilement dans vos scripts Gradle dans le fichier build.gradle . Fx: si votre compileSdkVersion est 23, votre bibliothèque de compilation doit commencer à 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'
}

Et vérifiez toujours que votre Android Studoi dispose du niveau API pris en charge. Vous pouvez le vérifier dans votre SDK Android, comme ceci:  enter image description here

7
Oskar

Dans mon cas, il s'agissait d'une version supérieure des services Google Play. Je les ai mis à 7.0.0 (pas 8.x) et tout était ok.

6
Alecs

Je voulais passer de l'API 23 à 22 et j'ai eu cette erreur. Pour compiler, je devais changer les fichiers all build.gradle d'un projet.

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

C’est ce qui m’a aidé: Ajouter une plateforme Android spécifique

Ce qui devrait être fait est le suivant ... Dans mon cas, c'était cordova mais la même chose s'applique à ionic, phonegap et à d'autres frameworks comme ceux-ci:

  1. répertoriez toutes les plateformes installées pour votre projet: cordova platform list. Vous verrez quelque chose comme ça:

 enter image description here

  1. supprimer la plate-forme Android: cordova platform remove Android.

  2. puis ajoutez la plate-forme Android spécifique: cordova platform add [email protected].

Bonne chance! :)

4
Lentyai

J'ai les mêmes problèmes. J'ai résolu mon problème en mettant à jour gradle.build pour chaque sous-module vers la dernière version du compilateur.

3
sonida

Tout est génial mais aucun d’entre vous n’a expliqué où télécharger les outils de compilation du SDK. 

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

2
Stav Bodik

 SDK Manager

Assurez-vous que tout cela est à jour.

1
Ganesh Kanna

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

projet: nomAppXXXX (Gradle)

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

    }
}

allprojects {
    repositories {
        jcenter()
    }
}

et éditez votre activité de AppCompatActivity sur par exemple Activité:

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

Une autre solution: Naviguez vers

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

ouvrez le fichier .aar avec 7-Zip ou winrar, dans le dossier res, supprimez le dossier values-23 et enregistrez les modifications.

1
Ali Zarei

Mettre à niveau Android Studio.

J'ai eu ce problème avec Android Studio 1.3.1 et aucune des autres réponses n'a fonctionné pour moi, mais après la mise à jour vers la version 1.5.1, aucun problème n'est survenu.

1
Matthew Read

Si vous utilisez phonegap (multiplate-forme) et que vous avez le même problème ci-dessus, Supprimez simplement la plateforme Android à l'aide de la commande ci-dessous.

plateforme phonegap supprimer Android

Et ajoutez-le encore.

plate-forme phonegap ajouter Android

Alors le problème est résolu pour moi.

1
Edukondalu Thaviti

Comme d'autres l'ont déjà mentionné, votre compile sdk version doit correspondre à votre version principale support library's. Ceci est cependant également pertinent pour subprojects si vous en avez.

Dans ce cas, vous pouvez définir les versions de sdk de la compilation subprojects avec le script suivant:

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

Ajoutez ce script dans votre fichier build.gradle racine.

0
TheBaj