2010-10-27 8 views
19

Utilisation d'Eclipse sur win XP. J'ai déjà créé une application ou 2, mais je travaille maintenant sur la version 'réelle' et j'obtiens l'erreur ci-dessus. J'ai commencé à créer une version 1.5, donc j'ai commencé un nouveau projet pour 2.1.R.layout.main ne peut pas être résolu

package xxx.guest; 

import android.R; 
import android.app.Activity; 
import android.content.Context; 
import android.graphics.Bitmap; 
import android.os.Bundle; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class briefme extends Activity { 

private String strURL; 
      ........ 
      ........ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

projet comme ci-dessous (notez que je l'ai enlevé quelques noms pour des raisons de confidentialité!)

Toutes les idées ce qui a mal tourné?

Merci,

Martin.

Project screenshot here

Répondre

59

Je rafraichir, si cela ne fonctionne pas, fermez et ouvrez le projet.

Si ces deux échecs, supprimez et recréer R (il devrait générer automatiquement) (copiez-le simplement pour être du bon côté).

J'ai cela m'arrive à plusieurs reprises et ce sont les trois choses que je fais habituellement pour corriger l'erreur.

Edit: Essayez également de changer votre importation:

import android.R; 

à:

import your.package.R; 
+0

OK, il fixe - (ggogle est finalement arrivé à bon :)) –

+2

> mon projet ont inclure un r.java.at au début, R.layout.main fonctionne bien.Mais, après avoir ajouté du code, cela ne fonctionne pas, et l'erreur est R.layout.main ne peut pas résolu.quel est le problème? > Regardez vos importations. Les chances sont que la ligne: importer android.R; Pris d'un autre Stackoverflow Q: sera là. Si c'est le cas, supprimez-le, afin que votre projet ne résolve pas R avec la classe Android Resources par défaut, mais avec celle générée automatiquement à partir de votre dossier/res /. –

+0

merci beaucoup beaucoup +1 – IamStalker

2

Comme suggéré ci-dessus, en changeant simplement l'importation "importation android.R;" à un par rapport à votre application, par exemple "import your.package.name.R;" devrait faire l'affaire ici.

1

Vous pouvez également vérifier si le programme adb du dossier/platform-tools dispose des autorisations nécessaires pour s'exécuter sur votre système. Sinon, le R.java pour votre projet ne sera pas généré.

3

Dans mon cas, cela s'est produit car il s'agissait d'une ressource de mise en page avec des majuscules dans le nom de fichier. Les ressources n'ont pas été compilées à cause de l'erreur et à cause de cela, la classe R était manquante.

0

Mes deux cents.

Dans mon cas, j'avais utilisé une autre variable avec le même nom R qui a entraîné une erreur de compilation. Eclipse pourrait s'améliorer en termes de guidage des utilisateurs avec le message d'erreur exact.

0

Copie possible de R cannot be resolved - Android error.

Dans ce fil, nous avons une excellente réponse.

Se référant à http://source.android.com/source/using-eclipse.html nous obtenons l'extrait suivant:

Note: Eclipse aime parfois ajouter une « importation android.R » déclaration au sommet de vos fichiers qui utilisent des ressources, en particulier lorsque vous demandez Eclipse trier ou gérer les importations. Cela provoquera votre rupture. Recherchez ces instructions d'importation erronées et supprimez-les.

La réponse est de supprimer plutôt que de renommer votre import android.R;

La raison est que your.package.R est visible puisque vous partagez ensemble. Le import android.R; masque ceci, il est donc plus propre de supprimer ceci plutôt que de le remplacer par quelque chose de redondant.

0

Si vous disposez d'une plate-forme Linux 64 bits sans bibliothèques ia32, ce problème peut également se produire. Il m'a fallu un certain temps pour épingler celui-ci, vu que le problème n'est pas clairement lié à l'incapacité d'exécuter le code 32 bits.

0

Dans mon cas (voir d'autres tutoriels) vous devez changer:

setContentView(R.layout.main); 

Pour:

setContentView(R.layout.activity_main); 
Questions connexes