web-dev-qa-db-fra.com

importer Android.R dans Eclipse: Pourquoi?

Un extrait de la documentation :

Eclipse aime parfois ajouter une instruction d'importation Android.R en haut de vos fichiers utilisant des ressources, notamment lorsque vous demandez à Eclipse de trier ou de gérer les importations. Cela fera casser votre marque. Recherchez ces instructions d'importation erronées et supprimez-les.

Ma question: POURQUOI Pourquoi Eclipse continue-t-il à faire cela?

Je développe des applications Android à l'aide d'Eclipse depuis un certain temps, mais je n'ai jamais compris pourquoi Eclipse faisait une telle chose.

Quand j'utilise Ctrl + Shift + O pour organiser mes instructions d'importation, import Android.R est ajouté automatiquement. Et tout à coup, mon code correct est soudain recouvert d’erreurs rouges, indiquant que R ne peut pas être résolu . Cela peut devenir vraiment effrayant pour un débutant car il n'a aucune idée de ce qu'il a mal fait.

Dans un autre scénario, supposons qu'il y ait un problème avec mes fichiers de présentation et que R.Java ne soit pas généré, il est indiqué que R ne peut pas être résolu , comme R.Java. n'a pas été généré en raison des erreurs. Lorsque je déplace le curseur sur l'une des erreurs, il me suggère de import Android.R.

Après avoir travaillé sur Android pendant un certain temps maintenant, je sais que ne jamais importer Android.R, mais ce que je n'ai jamais pu comprendre pourquoi Eclipse continue en le suggérant franchement, ajouter Android.R n’a jamais résolu aucun de mes problèmes. Cela ne faisait qu’ajouter aux problèmes existants, qui étaient très pénibles pendant les premiers jours du développement.

Alors, est-ce que quelqu'un sait pourquoi Eclipse a suggéré de faire une importation incorrecte? Est-ce juste un bug? Je ne pense pas que ce soit un bogue, car il aurait été corrigé au moins après sa mention dans la documentation Android.

Si ce n'est pas un bogue, alors quel est le véritable objectif de Android.R? À quoi fait-il référence exactement?

Vos opinions/expériences seront vraiment utiles!

Merci!

19
Swayam

Ce n'est pas un bug. Il existe quelques cas où Android.R peut être utile et résoudre des problèmes.

Android.R est un fichier R.Java similaire à celui que vous avez dans vos propres projets. Celui de vos projets (your.packagename.R) contient des références aux ressources que vous avez dans votre dossier /res, telles que les mises en forme, les fichiers pouvant être dessinés, les fichiers XML, les fichiers bruts, les chaînes, etc.

D'autre part, le fichier Android.R contient des références à certaines ressources par défaut intégrées à Android, telles que simple_list_item_1.

Eclipse suggère ceci et les importations automatiques le sont parfois, car si le fichier R de votre projet n'a pas été généré à cause d'une erreur XML ou autre, votre code fera référence à un fichier qui n'existe pas. En important Android.R, Eclipse s'assure que votre code fait référence à une classe existante. Cependant, il est peu probable que Android.R dispose des mêmes ressources que vous, ce qui entraînerait un autre ensemble d'erreurs.

12
Raghav Sood

Eclipse tentera également toujours d'importer automatiquement Android.R dans votre classe si vous renommez le nom de votre package via des outils Android et ne renommez pas le nom du package de base dans votre code avec le même nom car il supposera que vous avez deux R dans votre fichier.

3
LilkeMan

Essaye ça...

Fenêtre -> Préfs -> Java -> Editeur -> Enregistrer les actions

Décochez la case "Organiser les importations". J'espère que ça va le faire.

Après ce réglage, cela fonctionne pour moi.

0
hassan yang