Question

Je viens de télécharger et d'installer le nouveau SDK Android. Je voulais créer une application simple pour tester le conduire.

L'assistant créé ce code:

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

Eclipse me donne l'erreur

  

R ne peut pas être résolu

en ligne

setContentView(R.layout.main);

Pourquoi?

PS: J'ai un fichier XML nommé main.xml sous res/layout/

.
Était-ce utile?

La solution 7

Qu'est-ce que dit était juste

  

R est une classe générée automatiquement qui contient les constantes utilisées pour identifier vos ressources>. Si vous ne disposez pas d'un fichier R.java (il serait gen / eu.mauriziopz.gps / R.java dans> Eclipse avec le SDK 1.5) Je recommande la fermeture et la réouverture de votre projet ou allez> Projet> Construire tous (et en sélectionnant « Construire automatiquement » alors qu'il comme recommandé par> Josef). Si cela ne fonctionne pas que essayer de faire un nouveau projet, si le problème est recréée que> post ici à nouveau et nous reviendrons plus en détail.

mais j'ai découvert qu'il y avait un autre problème qui a été à l'origine du premier. Les outils dans le répertoire SDK ne pas les autorisations à exécuter, il était donc comme n'existait pas pour Eclipse, donc il n'a pas construit le fichier R.java.

modifier l'autorisation et en sélectionnant « Construire automatiquement » résolu le problème.

Autres conseils

Après avoir suivi vers le bas ce problème aussi bien, je trouve cette note dans la documentation Android:

http://source.android.com/source/using-eclipse.html

  

* Note: Eclipse aime parfois ajouter une instruction « importation android.R » au   haut de vos fichiers qui utilisent des ressources,   surtout quand vous demandez Eclipse   trier ou gérer les importations. Cette   fera de votre make à briser. Regardez   pour ces importations erronées   les déclarations et les supprimer. *

Tout en passant par les tutoriels d'échantillons Android, je profiterions souvent Ctrl + Maj + O pour "Organiser les importations" et générer toute déclaration d'importation manquants. Parfois, cela générerait la déclaration d'importation incorrecte qui cache la classe R.java qui est généré automatiquement lorsque vous créez.

Chaque fois que j'eu un problème avec R pas été généré, ou même disparu, cela était dû à un problème dans le fichier de configuration XML qui a empêché l'application d'être construit.

Chaque fois que vous obtenez

  

R ne peut pas être résolu

puis vérifiez le répertoire /res et il doit y avoir un fichier qui ont une certaine erreur et qui empêche l'application d'être construite. Par exemple, il peut être un fichier de mise en page ou il peut être dû à une ressource manquante est, mais vous déjà défini dans le fichier XML.

Si vous avez des autres, même inutilisés (!) Ou des images non référencées (!) Dans un dossier comme res / dessinables-MDPI qui ne sont pas conformes aux conventions de nommage de fichiers (peut contenir seulement [un z0-9_.] ), la classe R.java peut ne pas générer, ce qui provoque la chaîne d'événements tous les autres postes désignés. Hope it helps!

  

mon projet ont un r.java.at comprennent le début, R.layout.main travailler good.But, après avoir ajouté un code ne fonctionne pas, et l'erreur est R.layout.main ne peut pas résoudre. quel est le problème?

Regardez vos importations. Il y a des chances que la ligne:

import android.R;

sera là. Si tel est le cas, retirez-le, afin que votre projet résoudra pas avec R la valeur par défaut de classe Ressources Android, mais avec celui généré automatiquement à partir de votre / res / dossier.

Et une autre chose qui peut causer ce problème:

J'ai installé la nouvelle ADT (v. 22). Il a arrêté la création du dossier de gen qui comprend R.java. La solution a été d'installer également nouveau SDK Android Construits Outils d'Android SDK Manager.

Solution trouvée

R.java est un fichier que les plug-ins Eclipse Android crée tout la construction de votre application. R.java est créé sous le « gen » annuaire. Ce fichier est généré à partir des informations contenues dans les « res » annuaire. Si vous exécutez sélectionnez « Projet » -> « Clean ... » sur l'Eclipse menu, il va supprimer puis régénérer le fichier R.java.

Le problème « R ne peut pas être résolu » se produit lorsque vous changez nom du package dans le fichier AndroidManifest.xml. Il utilise votre Android nom du package pour créer un sous-répertoire dans le répertoire « gen » où il stocke le fichier R.java.

Eclipse peut avoir des problèmes d'exécuter propre, car il est confus au sujet de où le fichier est R.java lorsque vous avez modifié le package Android Nom. Vous pouvez renommer le sous-répertoire gen pour correspondre à votre nouveau nom de package, ou vous pouvez changer le nom de votre package à l'ancienne Nom. Faites le nettoyage, puis changer le nom du package au nouveau nom tu veux. Cela fonctionne mieux si vous arrêtez Eclipse d'essayer de construire alors que vous changez le nom du package. Dans le menu « Projet » décocher l'option « Créer automatiquement » et lorsque le « Clean ... » dialogue demande si elle doit « Démarrer une construction immédiatement » décochez la case de sorte qu'il ne cherche pas à construire pendant que vous changez la nom du paquet. Après avoir changé le nom que vous pouvez activer « Build Automatiquement » à nouveau.

Notez que si votre nom de package de fichier AndroidManifest.xml ne correspond pas à votre nom de Java package, Eclipse va finir par ajouter automatiquement une "Import .R;" ligne dans tous vos fichiers .java qui ont des références à R. Si vous changez AndroidManifest.xml nom du package, parfois Eclipse ne met pas à jour tous ces ajouté importations. Si cela se produit, utilisez l'Eclipse refactoring ( ALT + Maj + R ) pour modifier l'instruction d'importation dans l'un de vos fichiers Java à votre nouveau nom de package AndroidManifest.xml. Il est préférable de faire alors que vous avez désactivé « Créer automatiquement ».

R est une classe générée automatiquement qui contient les constantes utilisées pour identifier vos ressources. Si vous ne disposez pas d'un fichier R.java (il serait gen / eu.mauriziopz.gps / R.java dans Eclipse avec le SDK 1.5) Je recommande la fermeture et la réouverture de votre projet ou d'aller Projet> Construire tous (et en sélectionnant « Créer automatiquement » alors qu'il comme recommandé par Josef). Si cela ne fonctionne pas que essayer de faire un nouveau projet, si le problème est recréée que poster ici à nouveau et nous reviendrons plus en détail.

Fermez tous les fichiers, projet propre, redémarrez Eclipse.

Il vaut la peine de vérifier dans AndroidManifest.xml. Le package attribut a la valeur correcte.

C'est:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="your.correct.package.name"
   ...

Après avoir modifié cela, le R.java sera à nouveau généré.

Cette erreur peut aussi être causée par l'ajout d'une activité à un espace de noms qui est différent de l'espace de noms racine de votre paquet.

Par exemple, si com.example.myapp est l'espace de noms racine de votre package, vous pouvez alors ajouter une activité à l'espace de noms com.example.myapp.activities.

Cela produira l'erreur « R ne peut pas être résolu ».

Pour fixer l'importation R dans l'espace de noms par défaut dans votre activité doit être:

import com.example.myapp.R;

En plus des grandes suggestions dans les réponses précédentes, assurez-vous que votre cible Android est défini:

  1. Faites un clic droit sur votre projet
  2. Choisissez Propriétés
  3. Choisissez Android dans le menu de gauche
  4. Cochez une case à côté du projet approprié Construire la cible.
  5. Cliquez sur Appliquer et OK

Edit: Un an plus tard, je trouve une autre cause. J'ai eu une image .jpg dans mon dossier drawable avec le même nom que l'image .png. Référençant cette image dans mon code doit avoir confondu le programme et lui a donné l'erreur « R ne peut pas être résolu ».

Assurez-vous que vous avez installé le gestionnaire de formulaire d'outil de construction Android sdk

projet faites un clic droit Propriétés-> Java Buildpath sélectionnez Bibliothèque et ajoutez android-support.jar le suivre ces étapes.

Aller projet-> Propriétés-> Chemin de génération Java que sélectionner l'ordre et l'onglet d'exportation. Set-support android .jar bibliothèque vérifiée et jusqu'à dans haut de la liste. Et propre et rebuild..It fonctionne pour la plupart des cas

entrer image description ici

Je viens d'avoir ce problème pour la millionième fois et réalisé ce qui était à l'origine: je crée un fichier XML avec des lettres majuscules dans le nom. Tous vos noms de fichiers XML dans /res doivent correspondre [a-z0-9\\._].

Solution la plus simple -. Parfois, il vous suffit d'enregistrer le fichier XML que vous travaillez pour obtenir le autogenerator pour lancer dans

Enregistrez le fichier (par exemple main.xml) puis supprimez le fichier R.java et voir si le R.java régénéré résout le problème de résolution R.

R est une classe générée. Si vous utilisez le Outils de développement Android (ADT) il est généré chaque fois le projet est construit. Vous devrez peut-être « Créer automatiquement » désactivée.

Vérifiez les noms de fichiers XML. Assurez-vous qu'ils sont tous en minuscules.

Assurez-vous également que les noms de ressources d'image sont également tous en minuscules. J'ai eu une lettre majuscule au nom de mon fichier jpg, et il a provoqué l'erreur R non résolue dans tout mon projet.

Cette erreur recadrée sur mon x64 Linux Mint Installation. Il est avéré que le résultat a été un échec dans le fichier binaire ADB, parce que le paquet ia32-libs n'a pas été installé. Il suffit de courir apt-get install ia32-libs et relançant Eclipse corrigé l'erreur.

Si votre distro x64 ne pas ia32-libs, vous devrez aller multiarchitecture.

Vérifier # 4 et # 5 sur ce post: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883

Espérons que cela aide quelqu'un.

Vous devrez peut-être mettre à jour / installer les outils SDK. Relancez Android SDK et installer à nouveau gérant un nouvel élément:. Android SDK Build-tools.one par une suppression, fixer un travail pour lequel vous loading="lazy"

Vous devrez peut-être mettre à jour les outils SDK. Relancez Android SDK nouveau le gestionnaire et installer un nouvel élément: Android SDK Build-outils.

entrer image description ici

J'ai eu ce problème aussi bien. Il est avéré que j'avais supprimé par inadvertance la ressource de chaîne « APP_NAME » à partir du fichier strings.xml, qui était à l'origine d'une erreur silencieuse. Une fois que je l'ai ajouté en arrière, la classe R a été généré avec succès et tout était à nouveau opérationnel.

Vérifiez d'abord est-il une erreur dans une mise en page xml ou non, si résolvez d'abord.

Dans le cas contraire supprimer la dépendance JUnit du projet et reconstruire le projet.

 ici

Essayez de faire votre nouveau nom de fichier de mise en page XML minuscules. Par exemple, utiliser my_file.xml au lieu de myFile.xml.

Encore une autre raison R.java pourrait ne pas s'autogénérés est si vous avez des répertoires comme res / drawable-hdpi , res / drawable-mdpi , ou res / étirables -ldpi .

1.6+ semble être OK avec ces répertoires, mais 1.5 ne veut pas. Quand j'ai enlevé ces répertoires, R.java a commencé autogenerating pour moi à nouveau.

Il suffit d'aller à la liste du menu Top Android. cliquez sur Créer Menu, en vertu cliquez sur Construire Reconstruire le projet .

 ici

J'ai eu les exemples d'Android 8 et ai essayé d'utiliser Android SDK 7. Quand je fermais le projet et réouvert le dossier d'application et a choisi d'utiliser Android SDK 8, il a pu trouver le fichier R. Espérons que cela aide.

Dans mon cas, j'ai eu une erreur dans mon AndroidManifest.xml. D'autres ont dit que vos fichiers XML doivent être exempts d'erreurs, mais je cherchais seulement dans la résolution / dossier. Trouver et corriger autant d'erreurs possibles et le problème pourrait bien se résoudre.

Souvent, cela est à cause du numéro de version MinSDK lors de la création que vous avez fourni le projet. Exemple:

Si vous voulez être le 2.1 minimum, Android 2.1 est en fait l'API de niveau 7.

Vous pouvez voir ce que je parle lorsque vous naviguez sur le SDK que vous avez téléchargé et installé. Accédez à l'emplacement vous avez installé le SDK (C:\android-sdk-windows par exemple) et ouvrez le dossier « plates-formes ». Vous verrez quelque chose comme « android-7 » répertorié comme un dossier, et si vous ouvrez qu'il ya un fichier source.properties qui, lorsqu'il est ouvert avec un éditeur de texte, vous montrera la version de la plate-forme correspondante.

Lorsque vous créez un projet, et vous devez sélectionner une API « Build cible », la dernière colonne dans cette liste nommée « API Level » indique le numéro que vous recherchez lors du remplissage de la mise en MinSDK.

Ceci est probablement l'une des erreurs les plus courantes qui se traduit dans le fichier R.java ne crée pas le cadre du projet> gen> packagename> R.java.

Supprimer main.out.xml. Je suis nouveau à cela et ne sais pas encore ce que ce fichier est utilisé pour, mais la suppression a effacé le problème.

Malheureusement, aucune des questions existantes a aidé. Depuis mon problème semble plate-forme spécifique, cela ne peut fonctionner que si vous êtes sur Ubuntu 64 bits (Je suis actuellement en utilisant Ubuntu 12). Au début, je ne voyais pas les « problèmes » Fenêtre, qui a déjà laissé entendre une solution, que sur 64 bits environnement dont vous avez besoin 32 bits libs, ce qui peut être manquant:

  

sudo apt-get install ia32-libs

J'ai installé le paquet et reconstruis mon projet, qui a fixé le problème pour moi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top