J'obtiens que le paquet redouté R
n'existe pas, ça me tue. Le code est bon J'ai des applications sur le marché exécutant le code.
Maintenant, il effectue des webview
applications simples . o.0
R.string.app_name
est une erreur de mon main.xml
et string.xml
va bien. Je suis tellement confus.
J'ai rouvert une ancienne version avec "borrow"
du code et il a été inondé de R. errors.
J'ai fait un nettoyage et rien n'a changé à part l'importation R.android
étant ajoutée en haut.
J'ai même chargé Netbeans et j'obtiens la même chose. Clean ne fonctionne pas. Puis-je écrire le R.java
fichier moi-même?
Quelle est cette R
chose? n'est pas R
. censé correspondre àR.java
Réponses:
Pour tous ceux qui ont rencontré cela, j'ai remanié en renommant les dossiers d'espace de noms. J'ai juste oublié de modifier également AndroidManifest et c'est pourquoi j'ai eu cette erreur.
Assurez-vous également de vérifier cela.
la source
Juste pour faire simple:
Bien sûr, en remplaçant
your.app.package
par votre package d'application.Dans toutes les classes qui utilisent des références de ressources R, supprimez toutes les autres
import
avec.R
, ieimport android.R;
la source
phonegap platform remove android
etphonegap platform add android
TL; DR , si vous obtenez l'erreur "le package R n'existe pas", les raisons possibles sont
-> corriger les erreurs XML
R
package (voir l'package
attribut dans AndroidManifest.xml)-> importez la
R
classe, par exempleimport com.example.android.R;
-> ou utilisez le package approprié dans votre source, par exemple
package com.example.android;
-> ou modifiez l' attribut package dans AndroidManifest.xml en
<manifest xmlns:android="..." package="com.example.android" ...>
, si cela est appropriéR
identifiants utilisés proviennent des ressources système-> n'importez pas
android.R
, mais préfixez les identifiants incriminés avecandroid.
, par exemple,android.R.layout.simple_list_item_2
vous pouvez importer
android.R
au lieu de préfixer les identifiants bien sûr, mais vous ne pouvez plus importer laR
classe d' application et devez préfixer les identifiants d'application, par exemplecom.example.android.R.id.main_menu
.La
R
classe est générée automatiquement à partir des ressources de l'application. Il contient lesid
s de ces ressources et est contenu dans le package nommé dans la<manifest>
balise duAndroidManifest.xml
fichier correspondant .S'il n'y a aucune erreur dans les fichiers XML de ressources, la
R.java
source sera générée dans un sous-répertoire de package cigen/
- dessous et compilée.Il existe une autre
R
classe située dans leandroid
package. Cetteandroid.R
classe contient des classes imbriquées, qui à leur tour contiennent desid
s et d'autres valeurs pour les ressources système .Pour utiliser une classe en Java, vous devez nommer la classe avec le package complet, par exemple
ou importez la classe puis utilisez-la sans package
Vous pouvez également utiliser une classe sans nommer le package, si la classe actuelle et la classe utilisée sont dans le même package, par exemple
la source
N'essayez jamais, jamais d'écrire la classe R vous-même!
Avez-vous importé la bonne classe R dans vos fichiers?
Faire
au lieu de
semble être le problème pour beaucoup de gens. Après le nettoyage et la construction, mes classes importent parfois la mauvaise.
la source
si vous développez dans le studio Android et que vous avez refactoré le nom du package, vous devez changer le nom du package dans le fichier manifeste Android et le fichier de gradle de l'application.
et dans le fichier manifeste
la source
R.java est un fichier généré automatiquement, il n'est généralement pas compilé si vous avez des erreurs dans le fichier xml.
Non Vous ne pouvez pas écrire votre propre fichier R.java, il doit être généré par le compilateur de ressources.
Recherchez les erreurs dans tous vos fichiers xml.
la source
La classe R est un code Java généré automatiquement à partir de vos fichiers XML (disposition de l'interface utilisateur, chaînes d'internationalisation, etc.) Si le code fonctionnait auparavant (comme il semble), vous devez dire à votre IDE de régénérer ces fichiers d'une manière ou d'une autre. :
la source
Je suppose que cela fonctionnait mais maintenant ça ne marche plus.
Cela peut se produire si vous modifiez le nom du PACKAGE dans votre fichier MANIFEST
Si vous souhaitez modifier le nom du package
la source
com.example.rickydam.txtbooks
encom.txtbooks.txtbooks
en créant un nouveau projet et j'ai tout déplacé vers le nouveau projet mais il n'a pas pu trouver R. J'ai essayé d'invalider les caches, de synchroniser avec gradle, de nettoyer le projet, de reconstruire le projet, de réinstaller les outils SDK ... Rien ne fonctionnait! Mais votre solution a résolu mon problème! Merci encore! Continuez à coder!Je viens de rencontrer cette erreur lors de l'utilisation de Bazel pour créer une application Android:
Assurez-vous que votre
android_library
/android_binary
utilise unAndroidManifest.xml
avec l'package=
attribut correct , et si vous utilisez l'custom_package
attribut surandroid_library
ouandroid_binary
, assurez-vous qu'il est correctement épelé.la source
Supprimer l'importation android.R; à partir de tous les fichiers .. une fois nettoyer le projet et construire le projet .... Il générera
la source
Exemple: mon package est com.example.mypc.f01 , pour corriger l'erreur, ajoutez la ligne ci-dessous à l'activité:
import com.example.mypc.f01.R;
la source
Voici quelques techniques que vous pouvez utiliser pour supprimer cette erreur: -
la source
Dans mon cas, j'ai réalisé que je créais plusieurs packages dans le projet. Dans le manifeste Android, j'ai trouvé que le nom du fournisseur ne contenait pas correctement la valeur de MyContentProvider au lieu de .provider.MyContentProvider. Mon package principal (avec l'interface utilisateur) était co.companyname.database.provider au lieu de co.companyname.database.
Ensuite, sur les instructions d'importation pour la classe concernée, j'ai simplement cliqué avec le bouton droit de la souris et demandé à Android Studio (0.8.6) d'optimiser mes instructions d'importation. J'ai également noté que si vous recherchez .R dans la barre de recherche AS dans le coin supérieur droit de l'IDE, vous pouvez trouver un fichier R.java généré automatiquement qui fait partie de votre package. À ce stade, vous n'avez rien à changer. Studio doit réparer le projet après avoir corrigé le fichier manifeste Android et reconstruit.
Un autre élément est que dans une classe, je faisais usage de toString (). Length () pour évaluer une chaîne, mais je les ai échangés contre TextUtils.IsEmpty (stringVal); Je ne peux penser à rien d'autre que j'ai fait pour résoudre le problème.
J'espère que cela aide quelqu'un.
NB - Tout cela est avec AS 0.8.6
PS
R.java est généré automatiquement, alors lisez l'en-tête: / * FICHIER AUTO-GÉNÉRÉ. NE PAS MODIFIER. * * Cette classe a été automatiquement générée par l'outil * aapt à partir des données de ressources trouvées. Il * ne doit pas être modifié à la main. * /
la source
Quand j'ai vécu cela, j'ai créé un nouveau projet et copié les fichiers de mon ancien projet vers mon nouveau.
Cependant, j'avais toujours le même problème:
R does not exist
. Ensuite, j'ai réalisé que j'avais copié et collé le manifeste de mon bloc-notes dans les manifestes Android Studio et que je n'avais pas changé le nom du package dans le fichier manifeste.Par conséquent, une fois que j'ai changé le nom du package dans le manifeste par le nouveau nom du projet, le nouveau projet que j'avais créé fonctionnait bien.
la source
Quels fichiers importez-vous dans les fichiers qui reçoivent l'erreur R?
Ma compréhension du fichier R est qu'il s'agit de listes de références générées automatiquement pour tous les attributs de l'application Android. Par conséquent, vous ne pouvez pas le changer vous-même.
Utilisez-vous Eclipse pour créer ce projet? Les anciens projets ont-ils eu ces erreurs avant de mettre à jour Eclipse? Quelles sont les références qui obtiennent des erreurs?
Assurez-vous que vous n'avez pas importé un autre fichier R à partir d'un autre code copié dans une autre application.
la source
Je rencontre ce problème à chaque fois que je change d'ordinateur et que je tente d'importer d'anciens projets à partir de fichiers transférés via une clé USB.
Ma solution de contournement consiste simplement à créer un nouveau projet et à copier (faire glisser) les fichiers dans l'EDI (actuellement en utilisant Netbeans) et à les reconstruire. C'est un ennui et un peu une solution pirate, mais cela résout le problème.
Si cela vous arrive, dans le pire des cas, vous devrez peut-être sauvegarder vos fichiers, supprimer le projet et simplement y faire glisser les fichiers et les recompiler. J'espère que cela n'arrivera pas à cela, mais ce serait votre option nucléaire.
la source
Vous pouvez essayer
Menu principal d'Android Studio> Fichier> Invalider les caches / redémarrer ...
Cliquez sur le bouton invalider le cache / redémarrer pour redémarrer votre projet
Résolvez à nouveau R.xxxx.xxx si une partie de la classe de fragment de classe R ne s'est pas résolue correctement
puis reconstruisez votre projet
J'espère que ça aide
la source
Si vous rencontrez cette erreur dans Android Studio:
Vérifiez le (s) fichier (s) du module Gradle -> defaultConfig -> paramètre applicationId.
Vérifiez la balise de package AndroidManifest.xml -> manifeste.
Vérifiez les déclarations de package dans tous les fichiers java src.
Synchronisez, nettoyez puis reconstruisez avec Gradle.
NE JAMAIS créer votre propre fichier R. R est généré automatiquement à partir de vos fichiers java source et des paramètres de construction.
la source
J'avais: "erreur: le package R n'existe pas" et j'ai supposé que javac n'avait pas accès à R.java.
J'ai donc ajouté% PROJ_LOC% \ gen au chemin source, et cela a fonctionné! SOURCEPATH =% PROJ_LOC% \ src;% PROJ_LOC% \ gen
Je n'utilise pas Android Studio ou Ant (ou XML).
la source
Si cette erreur apparaît après la résolution des conflits de fusion, un simple projet Build -> Clean peut aider.
la source
Je viens de me débarrasser de l'erreur dans mon projet. J'avais importé un exemple de projet, j'avais changé les dossiers du package mais je n'avais pas mis à jour le package dans l'un des fichiers java.
La cause la plus probable de cette erreur «le package R n'existe pas» est que le nom du package dans Java ou le fichier manifeste est incorrect. Assurez-vous qu'il est correct et synchronisé, puis effectuez une nouvelle génération.
la source
Parfois, il est résolu lorsque vous réimportez simplement le projet dans Android Studio.
la source
Mauvais chemin: le projet "casse" les pointeurs vers les images et si vous avez apporté des modifications de nom au chemin, par exemple un package ou des dossiers refactorisés. Ensuite, écrivez simplement à nouveau la lettre R et l'éditeur suggère le bon chemin et cela fonctionnera. Dans ce cas, vos noms de fichiers sont corrects et le contenu référencé dans le pointeur R. est présent mais le chemin est incorrect, donc clean et build ne fonctionneront pas.
la source
Un autre cas de rupture de R. est le traitement des annotations .
Certains traitements peuvent faire référence à des classes situées dans certains dossiers ou niveaux de dossier. Si vous déplacez les classes requises vers un autre emplacement, vous pouvez obtenir R. comme classe inconnue.
Malheureusement, le pointeur d'erreur vers ce problème n'est pas évident dans Android Studio.
la source
Aucun avantage à écrire vous-même R.java car il est modifié à chaque build,
N'oubliez pas d'utiliser R. quelque chose, par exemple: R.raw.filename à l'intérieur des classes dont la valeur de package est similaire à la valeur de package dans AndroidManifest.xml
parce que les ID de ressources R. sont définis pour l'application ou la bibliothèque en cours et qu'ils sont tous vérifiés s'ils existent au moment de la compilation, il n'est donc pas logique de leur permettre d'accéder à partir d'un «code» qui ne cible pas l'application ou la bibliothèque en cours et peut être utilisé dans d’autres endroits.
la source
J'ai oublié d'ajouter le "nom" de mon "package" en haut de ma classe java. Vérifiez si le vôtre est réellement ajouté.
la source
Je résous mon problème:
.
Aller au
AndroidManifest.xml
fichier et changer leminSDKVersion="17"
de 19la source