web-dev-qa-db-fra.com

Ajout de bibliothèques de support au projet Android

Pourquoi ai-je tant de mal à entrer dans le développement du développement Android? Je me suis développé dans diverses langues au fil des ans et, pour une raison quelconque, il semble que je n'arrive pas à aller au-delà de cette étape du "jeez-je-encore-me sentir-un-total-noob" avec Android.

J'essaie donc d'ajouter une barre d'action à mon projet Android 2.3.3. Pas de problème, non? Le site Web des développeurs Android contient un article clair et agréable expliquant exactement comment le faire. Bien sûr, cela implique l'ajout de la bibliothèque de support appcompat v7. Pas de problème, même ceci est documenté pas à pas sur cette page . Mais, comme avec à peu près tous ces exercices sous Android, je trouve que vous pouvez faire exactement ce que la page vous dit de faire. Cela ne fonctionnera toujours pas sans une quantité importante de recherche sur Google pour corriger les erreurs que vous rencontrerez par la suite.

J'ai donc suivi les étapes décrites dans "Utilisation d'Eclipse" dans la section "Ajout de bibliothèques avec des ressources" dans le lien ci-dessus. La première erreur que je reçois est Impossible de résoudre la cible «Android-16». Pas de problème, je pourrais me débrouiller avec celui-ci, mais je suis curieux. Y at-il des éléments dans les documents que je suis en train de suivre qui me suggèreraient d’installer Android 4.1.2 (API16)? Ai-je lu juste au-dessus ou aurais-je dû savoir par moi-même que, pour faire ce que j'essaie de faire, j'aurais besoin de API16?

Qu'à cela ne tienne, au moins, je peux résoudre ce problème, mais j'ai un nouveau problème. Dès que j'ajoute la bibliothèque Android-support-v7-compat à mon projet et que je clique sur le bouton OK, la sortie de la console s'illuminera d'erreurs, la première étant:

C: ...\Android-support-v7-appcompat\res\values-v14\styles_base.xml: 24: error: Erreur lors de l'extraction du parent pour l'élément: aucune ressource trouvée. correspond au nom donné "Android: Widget.Holo.ActionBar".

et les 60 autres erreurs impaires sont similaires mais pour des prénoms différents.

J'apprécierais vraiment si quelqu'un pouvait m'aider ici. Évidemment, j'aimerais savoir comment résoudre ce problème particulier, mais si quelqu'un pouvait me donner des conseils sur la façon de surmonter cette étape très frustrante de l'apprentissage de ce nouvel environnement de développement, je serais très reconnaissant. Qu’est-ce que j’aurais dû faire différemment pour ne pas rencontrer ce type d’erreur, si ce n’est suivre les instructions étape par étape sur le site Web d’Android Developers?

24
Dewald Swanepoel

OK, je suppose que je devrais poster une réponse car j'ai finalement réussi à résoudre mon propre problème.

En fin de compte, je dois utiliser une cible de construction d'Android 4.2.2, indépendamment du fait que je développe spécifiquement pour Android 2.3.3 - je veux dire, c'est pourquoi j'utilise des bibliothèques de support. J'imagine qu'il pourrait être possible qu'une autre cible plus basse (mais supérieure à 2.3.3) fonctionnerait quand même. Je viens d'utiliser celle la plus haute que j'ai installée et cela résout le problème.

Comment je suis supposé savoir cela en suivant les instructions pas à pas sur le site Web des développeurs Android est un mystère pour moi. La raison pour laquelle j'ai décidé d'essayer de changer targetSdkVersion était à cause de la dernière section de la page référencée dans la question . Il indique "Si vous augmentez la compatibilité ascendante de votre application existante avec une version antérieure de l'API Android avec la bibliothèque de support, veillez à mettre à jour le manifeste de votre application". Maintenant, je n'augmente pas la compatibilité en amont de mon application existante. Je modifie une application existante qui cible 2.3.3 pour pouvoir inclure une barre d'action (cela ressemble plus à une "compatibilité ascendante"). J'ai essayé de mettre à jour targekSdkVersion, mais j'étais à court d'idées et voilà, cela a fonctionné.

22
Dewald Swanepoel

Je ne sais pas si cela vous aide du tout, mais je suis aux prises avec un problème similaire depuis plusieurs heures et j'ai finalement réussi à le résoudre. Dans mon cas, dans le fichier styles.xml de mon propre projet, je faisais référence au style AppCompat de manière incorrecte dans l'attribut parent.

J'utilisais:

<style name="AppBaseTheme" parent="Android:Theme.AppCompat">

où j'aurais dû utiliser:

<style name="AppBaseTheme" parent="@style/Theme.AppCompat">

Mon erreur était dans la référence au thème.

3
Matej

J'ai constaté que la définition de la cible Android sur 2.3.3 pour le projet de bibliothèque Android-support-v7-appcompat résout ce problème. Vous n'avez pas besoin de définir la cible de votre projet plus haut, mais la cible de la bibliothèque plus basse.

1
Jacek Kopecky

Voici comment j'ai évité l'erreur "Impossible de résoudre la cible 'Android-16'" lors de l'ajout de la v7.

Tout d'abord, j'ai suivi les instructions pour ajouter des bibliothèques de support avec des ressources dans Eclipse. Après l'étape 4, j'ai cliqué sur Terminer. C'est alors que j'ai vu le message d'erreur, Android-support-v7-appcompat] Impossible de résoudre la cible "Android-16".

Deuxièmement, j'ai lu ce post. J'ai aussi ouvert le gestionnaire de téléchargement, mais je n'avais besoin de rien de mis à jour. Afin de m'assurer que j'ai suivi les étapes à la perfection, j'ai supprimé le projet Android-support-v7-appcompat et recommencé.

Cette fois-ci, je n'ai coché aucune case différente. Mais je n'ai pas non plus d'erreur à l'étape 4. Qui peut dire pourquoi?

Merci, Dewald, dans cette question, tu as exprimé la même frustration que moi. L'expérience est-elle le seul moyen de sortir?

0
Harry

Vous avez repéré le document essentiel et la section "Ajouter des bibliothèques avec des ressources":

http://developer.Android.com/tools/support-library/setup.html

L'erreur suggère que votre projet n'est pas capable de trouver ces ressources. Veuillez vérifier les points suivants:

  1. Vous avez coché "sa bibliothèque" dans le projet de bibliothèque

  2. Vous avez exporté les pots DANS LE PROJET BIBLIOTHÈQUE, comme décrit dans cette section. 

  3. Vous avez ajouté le projet de bibliothèque en tant que référence à votre projet d'application.

  4. Vous avez ajouté Android-support-v4.jar à votre dossier libs dans votre projet d'application.

Si tout cela est parfaitement correct, vérifiez si Eclipse contient des messages d'erreur. S'agit-il du projet de bibliothèque ou du projet d'application qui s'allume comme le sapin de Noël?

0
IanB

Tout d’abord, vérifiez si vous avez effectué toutes les étapes décrites ci-dessus, comme expliqué sur le site developers . Ensuite, pour les erreurs:

Impossible de résoudre la cible 'Android-16'

Assurez-vous que vous avez installé API16, cette erreur se produit si vous avez mentionné votre ciblesdk à 16 dans votre manifeste alors que le sdk pour API16 n'est pas installé. Vous pouvez installer l'API ou modifier la version minimale requise de votre projet sur la cible, pour la bibliothèque de support que vous utilisez. Je pense que l'API 11 est la version minimale requise pour Android.

Android: Widget.Holo.ActionBar

Cette erreur doit également être corrigée une fois que la cibleDisk est corrigée dans votre projet. Depuis que vous utilisez Holo.ActionBar, vous devez cibler votre projet sur le niveau minimal d’API pris en charge, c.-à-d. 11 ou plus. 

0
lil'ms

Aller sur Projet -> décocher Construire automatiquement

Allez dans Projet -> Nettoyer ..., nettoyez le projet de bibliothèque et le projet d’application.

Exportez votre application sous forme d'APK signé tandis que Construire automatiquement est toujours désactivé

0

J'ai rencontré des problèmes similaires. Utilisation de l'API 18, ADT.

Pour résoudre le problème "Impossible de résoudre le problème" Android-16 "cible, je supprime le projet import lib et répète ce que dit le didacticiel. 

Ensuite, j'ai découvert que je ne pouvais pas vraiment "ajouter" la bibliothèque à mon projet. (L'instruction "Dans le volet Bibliothèque, cliquez sur Ajouter." There n'est pas ce détail. 1. Dans votre projet -> propriétés -> chemin de construction Java -> Bibliothèques -> Ajouter une bibliothèque ... - > Android Classpath Container -> Sélectionnez le projet de bibliothèque 2. Dans votre projet -> Propriétés -> Android -> Ajouter ... -> Choisissez la bibliothèque -> Appliquer

à votre santé

0
vancexu

Si certains de vos fichiers xml de ressources ne peuvent pas trouver leurs références AppCompat respectives, veillez également à ajouter les bibliothèques de support aux propriétés de votre projet. Vous faites cela par:

1.) clic droit sur votre projet dans le projet 

2.) Sélectionnez les propriétés. (Bas du menu)

3.) Cliquez sur Android dans le menu de gauche de la nouvelle fenêtre contextuelle.

4.) Dans la section des bibliothèques, cliquez sur le bouton "Ajouter"

5.) Sélectionnez les bibliothèques respectives. (Si aucune ne s'affiche, vérifiez si elles sont déjà affichées dans la fenêtre "Bibliothèques" du menu contextuel. S'il existe un x rouge dans la bibliothèque souhaitée, essayez d'abord de résoudre ce problème.)

6.) Lorsque les bibliothèques désirées sont cochées en vert, assurez-vous que l'option "Est la bibliothèque" dans la section des bibliothèques IS NON sélectionnée.

7.) Cliquez sur Appliquer.

8.) Fermez le menu contextuel.

Si cela ne fonctionne pas, faites le moi savoir et je peux vous aider. J'ai passé trois heures sur le problème, donc je connais à peu près tout ce qui peut mal se passer lors de la configuration. 

0
Adam Ruhl