erreur de ressource dans le studio Android après la mise à jour: aucune ressource trouvée

101

Après une récente mise à jour d'Android Studio, nous rencontrons des problèmes pour compiler un projet qui fonctionnait auparavant. Au début, nous recevions l'erreur suivante:

/Users/james/Development/AndroidProjects/myapp/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

J'ai mis à jour la cible de construction sdk dans notre fichier gradle à 23, ce qui a fait disparaître ce problème spécifique, mais cela nous a laissé une tonne d'erreurs de paquet apache.http (en particulier, une tonne de paquets apache que nous utilisons pour les trucs http ont maintenant disparu dans sdk 23).

Ce que je veux faire, c'est résoudre l'étrange erreur de ressource, mais sans mettre à jour vers sdk 23. Je n'ai pas le temps de réécrire notre bibliothèque d'outils pour le moment pour utiliser la nouvelle implémentation des composants http apache qui a été publiée. Quelqu'un a-t-il une idée?

James Dobson
la source
N'obtenez-vous pas l'erreur dans le fichier appcompat_v7 res / values-v23 / styles.xml lui-même (plutôt que dans votre projet)?
Solace
1
Vous n'êtes pas sûr de comprendre votre question? Nous obtenions le problème dans un fichier généré comme indiqué par le chemin du fichier dans l'erreur publiée ci-dessus.
James Dobson
Si l'erreur se produit dans les fichiers générés, vous devez mettre à jour les outils de construction, dans gradle, pour qu'ils correspondent à la version des bibliothèques. ie buildToolsVersion "23.0.1"
BK Batchelor

Réponses:

78

Changez la version appcompat dans votre fichier build.gradle en 22.2.1 (ou tout ce que vous utilisiez auparavant).

Tunga
la source
5
Merci, c'était la solution. J'ai suivi les instructions ici: code.google.com/p/android/issues/detail?id=183122#makechanges spécifiquement, la solution proposée par scott. J'ai dû supprimer le 23.0.0 dans mon dossier sdk, supprimer la version 23 sdk dans le gestionnaire de SDK, puis faire un nettoyage et une reconstruction
James Dobson
4
James, merci pour la solution. Cependant, je suis tout simplement stupéfait de cette situation PITA - parce que je n'ai jamais eu appcompat-v7: 22.2.1 installé !!
Someone Somewhere
Y a-t-il un moyen de faire cela dans Eclipse?
Solace
10
@Solace Eclipse est inutile
Back Packer
6
@BackPacker Non. Android Studio est le problème. J'ai un bon ordinateur et Android Studio prend une éternité pour compiler une simple application Hello World.
TheRealChx101
197

Vous devez définir compileSdkVersion sur 23.

Depuis l'API 23 Android a supprimé les packages Apache Http obsolètes, donc si vous les utilisez pour les requêtes serveur, vous devrez ajouter 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'
}
Roberto B.
la source
1
Cela fonctionnera mais vous voudrez vous assurer d'installer la nouvelle version du SDK. API 23 (plate-forme Android 6.0). Cela vous permettra de prendre en charge les appareils plus récents. C'est pourquoi, lorsque vous changez la "version appcompat" vers une version plus récente, la version la plus récente du SDK sera nécessaire.
JamesDeHart
4
Cette réponse est bien meilleure que de revenir à 22.2.1
Jörn Buitink
4
C'est certainement une réponse idéale et c'est évidemment la bonne marche à suivre pour la plupart des gens, cependant, cela ne répond pas à ma question qui était de résoudre le problème sans mettre à jour la version sdk. Cela casse une bibliothèque sur laquelle nous dépendons mais n'a pas eu le temps de mettre à jour à l'époque. Nous avons depuis mis à jour la bibliothèque pour utiliser les nouvelles fonctionnalités et nous pouvons maintenant mettre à jour en toute sécurité vers le sdk 23.
James Dobson
@RobertoB. Merci, c'est une bonne information. Nous avons déjà mis à jour notre base de code pour utiliser les nouvelles bibliothèques Apache, mais j'espère que cela aidera les autres!
James Dobson
Comment cela est-il lié aux messages d'erreur signalés par l'OP? Je pense que compileSdkVersion est une solution de contournement valide, mais l'utilisation de la bibliothèque Apache héritée n'est qu'une exigence indirecte.
mdelolmo
21

dans le fichier build.gradle de votre projet ... écrivez comme ci-dessous .. J'ai résolu cette erreur en modifiant la version appcompat de la v7.23.0.0 à la v7.22.2.1 ..

dependencies

{

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

}

La capture d'écran ci-dessous est pour une meilleure compréhension.

uriner
la source
1
Non NON Non .... Je ne m'y attendais pas! MAIS CELA A FONCTIONNÉ !! Quel est l'intérêt de le mettre à jour vers 23.0.1 alors?
sud007
Celui-ci obtient mon +1: il n'est pas toujours approprié de simplement mettre à jour la dernière version de tout ce que quelqu'un vous dit immédiatement. Celui-ci répond à la question initiale et résout le problème pour moi.
Mark Smith
10

Attention, mauvaise réponse à venir! Mais quiconque n'a pas de bibliothèques Apache peut trouver

compileSdkVersion 23
buildToolsVersion "23.0.0"



//...


dependencies {
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:design:23.0.0'    

}

utile, cela a fait l'affaire pour moi.

diesistdername
la source
Pourquoi a-t-il un tel problème avec les bibliothèques Apache?
NinjaCoder
4

vous devriez changer votre compiledsdkversion et targetversion à 23 dans le fichier de gradle de construction spécifique à l'application.Assurez-vous d'avoir installé sdk 23, version 6.0 avant cela.Vous pouvez regarder cette vidéo pour plus d'aide. https://www.youtube.com/watch?v=pw4jKsOU7go

Dinesh Sunny
la source
2

si vous obtenez des erreurs même après avoir téléchargé le dernier SDK et Android Studio Je suis un débutant: ce que j'ai fait était 1. Téléchargez le SDK récent (j'étais) 2.Ouvrez la structure du fichier-projet (ctrl + alt + shift + S) 3. Dans les modules, sélectionnez l'application 4.Dans l'onglet des propriétés ... changez la version de compilation de sdk en api 23 Android 6.0 marshmallow (dernière)

assurez-vous que la version de compilation et les outils de construction sont de la même version (23)

J'espère que cela aide quelqu'un pour qu'il ne souffre pas comme je l'ai fait pendant ces quelques jours.

xsushil
la source
2

Essayez de faire correspondre toutes les versions:

compileSdkVersion 23
buildToolsVersion '23.0.0'
targetSdkVersion 23
compile 'com.android.support:appcompat-v7:23.0.0'

C'est du travail pour moi.

Ganesh Jadhav
la source
1

compileSDK doit correspondre à la version appCompat. TargetSDK peut toujours être 22 (par exemple, si vous n'avez pas encore mis à jour le nouveau modèle d'autorisation)

cwiesner
la source
1

si tu as :

/Users/james/Development/AndroidProjects/myapp/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

erreur, vous devez changer votre appcompat, buildtools, sdkà 23 mais, si vous ne voulez changer et doit être en 22 faire ceci:

  • compiler 23
  • cible 22
Adnan Abdollah Zaki
la source
0

Cela fonctionne juste quand le build.grade a été changé en cela:

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "blablabla"
        minSdkVersion 15
        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.android.support:appcompat-v7:22.0.0'
}
Sanderson
la source
0

J'ai remarqué que je n'avais pas installé sdk 23. Alors je l'ai d'abord installé puis reconstruit mon projet. Et cela a bien fonctionné. CompilesdkVersion doit également être 23

Arun Alo Chakraborty
la source
0

Tout d'abord,

Essayez de vérifier votre dossier SDK, pour moi, c'était mydocuments / appdata / sdk .... etc. Donc, fondamentalement, mon dossier sdk n'était pas entièrement téléchargé, la source de ce problème principalement. Vous devez soit utiliser un autre sdk android entièrement téléchargé (y compris la section Outils et les extras dont vous avez vraiment besoin) ou utiliser le sdk eclipse que vous pouvez télécharger plus tôt pour vos développements Android Eclipse. Puis compilez-> nettoyez à nouveau votre projet.

La peine d'essayer.

Adnan Bal
la source
0

Mettez à niveau pour utiliser l'API 23 (Android 6.0) ou rétablissez la version appcompat-v7 à 22.2.2 dans Gradle. Cela fonctionne pour moi lors de l'ajout du service Google Play

Leo
la source
0

Méthode 1: elle s'affiche. Vous n'avez pas installé l'API 23. Veuillez donc installer l'API 23.

Méthode 2:

Changez la version appcompat dans votre fichier build.gradle à 22.0.1 (ou moins).


la source