n'a pas pu résoudre des ressources android eclipse
Je suis nouveau dans andorid développement.
J'ai créé mon android premier projet selon http://developer.android.com/training/basics/firstapp/creating-project.html
Et voici le code que j'ai que le projet a été créé(pas de modifications dans le code par moi)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
Voici la capture d'écran de l'interface Graphique de mise en page
http://imageshack.us/a/img35/5284/android1s.png
Donc, il semble bien, pour le moment, mais si je veux modifier le texte Hello world
à , disons, hello
, de sorte que le code de la partie ressemble à android:text="@string/hello"
, j'obtiens l'erreur
NOTE: This project contains resource errors, so aapt did not succeed, which can cause rendering failures. Fix resource problems first.
et
Couldn't resolve resource @string/hello
, et le texte de présentation graphique devient
@string/hello
, car c'est dans cette image
http://imageshack.us/a/img826/7735/android2p.png
Mais j'ai remarqué une chose:
Si, après cette erreur, je vais à res/values/strings.xml
et ajouter String
avec le nom et la valeur hello
, comme
http://img842.imageshack.us/img842/8108/android3s.png
L'erreur disparaît et je peux voir le mot hello
dans la mise en page graphique.
J'ai essayé ces jusqu'à présent
- À l'aide de
ctrl+shift+s
comme il est décrit ici https://stackoverflow.com/a/14462434/932473 - La fermeture et la réouverture de l'Éclipse.
- de nettoyage, rebulding
- retrait de l'ensemble du projet et de la création de nouveau.
La values
dossier n'existe pas dans res
.
Aucune de ces questions n'a résolu mon problème
Eclipse n'a pas pu résoudre ressource de chaîne d'erreur
Ne peut pas Résoudre Android Chaînes de Ressource
Mis à JOUR
Si j'écris comme cela android:text="hello"
Je reçois ce message d'avertissement dans eclipse
Hardcoded string "hello", should use @string resource
,
Je ne l'obtenez pas, à chaque fois que je veux utiliser une chaîne de caractères comme android:text="@string/hello2"
, j'ai d'abord spécifier manuellement hello2
dans strings.xml
?
- vous devraient faire une entrée de la chaîne de bonjour dans strings.xml
- Merci pour les réponses, j'ai mis à jour la question
- c'est un chiffon en vous avertissant que vous avez utilisé harcoded chaîne. oui, vous avez besoin de faire une entrée dans strings.xml pour la chaîne que vous consultez. comme <string nom="hello2">whateverilike</string>
- ok, Merci @Raghunandan, et à propos de cette mise en garde que je reçois dans eclipse pour ce qui est du droit ou de manière préférée, utilisez juste
android:text="hello"
, ouandroid:text="@string/hello"
et le spécifier dansstrings.xml
? - la deuxième voie est la voie préférée. les peluches seulement vous avertit. ce n'est pas une erreur en précisant dans strings.xml est le moyen privilégié
- mais n'est-ce pas un peu lent ? de sorte que je devrais ajouter manuellement
<string name="hello2">whateverilike</string>
dansstrings.xml
? n'est-il pas possible de faire apparaître automatiquement des choses nécessaires dansstrings.xml
que je vous écris, qch commeandroid:text="@string/some_new_message"
dans mon code ? - non, pas possible. son pas lent. la différence entre une chaîne codée en dur et de récupérer la chaîne de caractères dans strings.xml par android est moins de quelques millisecondes. donc, tant qu'utilisateur, vous ne remarquerez à tous
- non, je ne veux pas dire de la programmation de la vitesse, je veux dire, si j'écris
android:text="@string/some_new_message"
, et lasome_new_message
n'existe pas dansstrings.xml
et pour mon erreur en aller, je dois aller manuellement pourstrings.xml
, cliquez surAdd
et d'écrire le nom de la variable y, il faut un certain temps, je voulais dire ceci :), donc si j'ai un très gros projet et il y a des dizaines de variables, donc, je dois manuellement, un par un, les ajouter dansstrings.xml
? - voir le fichier de réponse. dites que vous faites glisser et déposez un textview dans votre mise en page. droit sur le textview. cliquez sur edittext. de là, vous pouvez voir les polluants organiques persistants, comme indiqué dans le fichier de réponse. vous pouvez faire une entrée à la strings.xml en cliquant sur la nouvelle chaîne. c'est d'une façon ou si vous avez manuellement goto strings.xml et de faire une entrée
Vous devez vous connecter pour publier un commentaire.
Dans res/values/strings.xml
Puis reportez-vous à la chaîne dans votre textview comme
Je suppose que vous n'avez pas quelque chose de similaire à ci-dessus. Par conséquent, vous obtenez la ressource introuvable exception coz la ressource n'est pas défini dans strings.xml
Vous pouvez faire en tant que ci-dessous
De la question dans le commentaire
android:text="@string/hello"
, au lieu deandroid:text="hello"
, je veux dire, peut-être qu'il sera plus facile de faire des changements dans l'avenir, ou peut-être que c'est plus dynamique, alors pourquoi il est préférable ?strings.xml
droit ?Vous pouvez simplement utiliser
l' @chaîne de bits à-dire une ressource appelée
hello
dans votre xml.De sorte que vous pouvez également ajouter des ressources à votre xml si vous le souhaitez. Son connu pour être de mieux en pratique, pour l'internationalisation.