177 votes

Pourquoi Android Studio signale-t-il que "l'URI n'est pas enregistré" ?

J'ai donc essayé Android Studio, parce que j'aime beaucoup Resharper et que j'ai remarqué que l'IDE intégrait certaines de leurs fonctionnalités. Après avoir créé un nouveau projet par défaut, j'ai ajouté un nouveau fichier de mise en page et j'ai voulu changer la mise en page par défaut de l'exemple 'hello world', et j'ai obtenu une erreur "URI is not registered" sur les lignes suivantes :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"

Je n'ai encore rien fait d'autre au projet généré par défaut. Je suis tombé sur une autre question qui semble être liée ( L'URI du schéma du projet Intellij Android n'est pas enregistré ? ), mais ignorer quelque chose me semble bizarre. J'ai essayé, mais cela provoque RelativeLayout (et probablement tous les autres éléments liés à Android) n'est plus reconnu (message d'erreur : "Cannot find the declaration of element 'RelativeLayout'").

Avez-vous des idées sur la façon de résoudre ce problème ?

enter image description here

enter image description here

enter image description here

170voto

Mazen Kasser Points 423

Vous rencontrez ce problème parce que vous êtes à la mauvaise destination ! Le répertoire correct pour le fichier de ressource Layout doit être sous "res-layout" et non "res-all-layout".

55voto

eliasbagley Points 63

Pour moi, c'était parce que j'utilisais une variante de construction de débogage et de version. J'ai ajouté les nouveaux dossiers src/debug/res/layout/some_layout.xml manuellement, et il n'a pas reconnu l'URI. J'ai changé la variante de construction en release, puis de nouveau en debug. Cela a provoqué le rechargement de quelque chose par Android Studio, et l'erreur a disparu.

EDIT : Vérifiez également que vous avez le bon nom de fichier. J'ai eu ce problème à nouveau en ajoutant un AndroidManifest.xml de débogage, mais je l'ai nommé par erreur AndroidManifest.xml.xml.

39voto

VinceStyling Points 896

J'utilise Intellij IDEA mais je pense que cela fonctionnera également avec Android Studio. Pouvez-vous voir le "Journal des événements" dans le coin inférieur droit de l'IDE ? Le framework Android est détecté dans le projet Configurer ", cela signifie que vous devez avoir une configuration de cadre. Si c'est le cas, il suffit de suivre le lien du message.
De la même manière, vous pouvez vous rendre sur " Fichier > Structure du projet > Modules " puis ajoutez une facette Android.

enter image description here

Au fait, si je veux utiliser un espace de noms personnalisé comme vous le faites, j'écrirai l'identifiant de la ressource comme nom de paquet lorsque je définirai l'attribut de paquet AndroidManifest.xml de l'élément manifest, voici mon code.

<manifest package="com.my.name.android">
    ...
</manifest>

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/apk/res/com.my.name.android">
</RelativeLayout>

J'espère que cela vous aidera.

20voto

Regis_AG Points 2359

Ce problème est apparu soudainement pour moi, sans aucune raison. J'ai simplement fermé tous les onglets d'Android Studio et rouvert le fichier xml qui posait problème. Problème résolu ! :)

8voto

Kulasekar Points 198

Dans Android Studio 3.1.2, cette erreur se produit en raison d'une mauvaise validation de la mémoire cache..,

Allez dans le dossier du projet et supprimer tous les contenus dans dossier .idea

Cela supprimera la mémoire cache et le rechargement du projet créera un nouveau dossier de mémoire cache et le rendra opérationnel,

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X