Pourquoi Android Studio signale-t-il "L'URI n'est pas enregistré"? [fermé]

161

J'ai donc essayé Android Studio, car j'aime vraiment Resharper et j'ai remarqué que l'EDI avait certaines de leurs fonctionnalités intégrées. Ayant maintenant créé un nouveau projet par défaut, j'ai ajouté un nouveau fichier de mise en page et je voulais modifier l'exemple de mise en page par défaut existant 'hello world', et j'ai eu une erreur "URI n'est pas enregistrée" 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 pour le projet généré par défaut. Je suis tombé sur une autre question qui semble être liée (l' URI du schéma de projet Intellij Android n'est pas enregistré? ), Mais ignorer quelque chose me semble étrange. Je l'ai en fait essayé, mais cela fait RelativeLayout(et probablement tous les autres trucs liés à Android) ne plus être reconnus (message d'erreur: "Impossible de trouver la déclaration de l'élément 'RelativeLayout'").

Des idées sur la façon de résoudre ce problème?

Xilconic
la source
9
La fermeture et la réouverture d'Android Studio ont résolu ce problème pour moi :)
Umair
1
Invalidez et redémarrez le cache, puis cela fonctionne
thewhitetulip

Réponses:

150

Vous rencontrez ce problème car vous n'êtes pas à la bonne destination! Le répertoire correct pour le fichier de ressources Layout doit être sous "res-layout" et non "res-all-layout"

Mazen Kasser
la source
2
Ah oui, vous avez absolument raison. L'erreur que j'ai commise est que j'ai ouvert le fichier depuis <racine du projet> \ <nom du projet> \ build \ res \ all \ debug \ layout (il est ouvert par défaut je pense, et étant habitué à travailler de haut en bas, je suppose cela explique la confusion). Au lieu de cela, il faut en effet regarder <racine du projet> \ <nom du projet> \ src \ main \ res \ layout.
Xilconic
J'ai eu le même problème pour le fichier manifeste que faire
Prasad
Je vous remercie!! Cela fonctionne très bien pour moi ..
Vinoth Vino
1
J'ai rencontré le même problème mais mes chemins étaient corrects. Il a finalement été corrigé par invalider / redémarrer. L'invalidation du cache n'a pas fonctionné. AUGH! :)
steven smith
1
pour moi invalider / redémarrer a fonctionné. merci @stevensmith
Abdul Samad
51

Pour moi, c'était parce que j'utilisais une variante de version de débogage et de publication. J'ai ajouté manuellement le nouveau fichier src / debug / res / layout / some_layout.xml, et il n'a pas reconnu l'URI. J'ai basculé la variante de construction sur release, puis de nouveau sur debug. Cela a obligé Android Studio à recharger quelque chose et l'erreur a disparu.

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

Eliasbagley
la source
2
Cela a fonctionné pour moi. Pour ceux qui cherchent comment changer la variante de construction, c'est dans le panneau le plus à gauche de AS, écrit sur le côté. Cliquez dessus, puis sous "debug" se trouve en fait une liste déroulante.
lemuel
1
Pour moi, la même chose était vraie. Si vous recherchez une mise en page différente de la personnalisation de l'application, ce qui est chargé par le studio Android, vous obtiendrez une erreur.
Neeraj Shukla
Ça fonctionne super bien!! merci
Virag Brahme
Vous avez sauvé ma journée !!
Adi
39

J'utilise Intellij IDEA mais je pense que cela fonctionnera également dans Android Studio, pouvez-vous voir le "Journal des événements" dans le coin inférieur droit de l'IDE, y avait-il un message comme "Le cadre Android est détecté dans le projet Configure ", cela signifie que vous devrait avoir une configuration de cadre. Si tel est le cas, suivez simplement le lien du message.
De la même manière, vous pouvez aller dans " Fichier> Structure du projet> Modules ", puis ajouter une facette Android.

entrez la description de l'image ici

en passant, si je veux utiliser un espace de noms personnalisé comme vous, j'écrirai l'identificateur de ressource comme nom de mon package lorsque je définis l'attribut de package 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 aide.

VinceStyling
la source
2
@Michael Alan Huff, merci beaucoup de m'avoir appris.
VinceStyling
pas de problème :) bon empilage.
Michael Alan Huff
17

Ce problème m'est apparu soudainement, sans aucune raison. Je viens de fermer tous les onglets d'Android Studio et de rouvrir le fichier xml qui avait des problèmes. Problème résolu! :)

Regis_AG
la source
3
a sauvé ma vie ... :)
bangkokguy
cela n'aide que jusqu'à la prochaine fois que j'essaye d'exécuter l'application
AvielNiego
Invalidez et redémarrez le cache, puis cela fonctionne
thewhitetulip
8

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

Accédez au dossier Projet et supprimez tout le contenu du 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 bon.,

Kulasekar
la source
6

C'est un problème de plugins.

  1. Redémarrez votre studio Android.
  2. Il affichera une fenêtre pop pour activer les plugins
  3. cliquez sur activer les plugins, puis cliquez sur OK.

alors il redémarrera automatiquement votre studio et les travaux iront bien.

espérons que cela fonctionnera.

Dalvinder Singh
la source
5

Mon problème était que mes dossiers étaient structurés comme suit:

MyProject/ res/ layout/ main.xml layout-land/ main.xml

(Mon Slayout-landdossier était dans mon layoutdossier)

J'ai changé la structure et cela a fonctionné pour moi:

MyProject/ res/ layout/ main.xml layout-land/ main.xml

J'espère que ca aide!

androidtitan
la source
5

Je ne connais pas la raison de cette erreur, mais j'ai découvert cela quelque part et cela a résolu mon problème.

  • Allez dans "Fichier> Structure du projet> Modules"
  • Cliquez sur "ajouter (+) "
  • Cliquez sur "Android" et "Appliquer", puis sur "OK"
Mayank Raj
la source
4

il s'avère que j'étais en train d'éditer la version DEBUG du xml, pour le réparer, fermez simplement l'onglet qui contient l'erreur et rouvrez-le

Dinesh Kumar
la source
3

j'ai eu la même erreur. Je l'ai résolu en important à nouveau le projet dans le studio Android.

Nicolás Schmidt Gubbins
la source
2

Pour moi, le plugin Android Supportest désactivé d'une manière ou d'une autre. L'activation des plugins a de nouveau fonctionné pour moi.

Settings > Plugins > Android Support
Dipali s.
la source
2

Sélectionnez la saveur appropriée dans les variantes de construction.

Si vous visualisez un fichier particulier sous Flavour1, sélectionnez cette saveur dans la fenêtre BuildVariants.

Si votre IDE est Android Studio (3.2.1 à ce jour), vous devriez trouver la fenêtre Build Variants en bas à gauche, alignée verticalement.

Mahi
la source
1

Parfois, cette erreur est corrélée à d'autres erreurs dans votre manifeste. Vérifiez s'il manque des dépendances et si toutes les balises sont fermées. Dans mon cas, j'avais supprimé un dossier dans le dossier / res, je l'ai restauré et cette erreur a disparu.

Cristian Traìna
la source
1

Pour moi, les fichiers xml incriminés manquaient la ligne d'en-tête ...

<?xml version="1.0" encoding="utf-8"?>

L'ajout de cela l'a corrigé.

Bataille de Clark
la source
1

J'ai recommencé à le récupérer, ce qui fonctionne réellement maintenant, c'est d'ajouter des déchets dans build.gradle. Ensuite, essayez de synchroniser. En cas d'échec, retirez les déchets et resynchronisez. Après indexation, cela fonctionne.

Manoj Gopal
la source
1
  • Allez dans "Préférences> Langues & Frameworks> Schémas et DTDS"
  • Cliquez sur "ajouter (+)"
  • Cliquez sur «appliquer» puis sur «ok»

espérons que cela fonctionnera.

Scarlett
la source
ajoutez simplement votre URL.
Scarlett
1

Pour moi, je clone un projet depuis gitlab, il y a une table des matières:

TradeClient / TradeClient / app / ...

alors je rencontre ce problème, je résous le problème par la méthode ci-dessous:

  • supprimez le chemin du milieu "TradeClient", comme TradeClient / app / ...
  • puis File -> Invalidate Caches / Restart ...
Zhangliang
la source
0

Le nouveau système de construction dans Android Studio crée un builddossier. Les barres d'inspection de code sur ce dossier ainsi que le gradledossier. Ces dossiers doivent être ignorés lors de l'exécution de l'inspection de code.

J'ai signalé un problème avec l'équipe Android Studio à l'adresse:

https://code.google.com/p/android/issues/detail?id=56415

Saad Farooq
la source
0

J'ai eu ce problème maintenant - j'ai créé un nouveau dossier sous le dossier de mise en page qui contiendrait tout le xml lié à ma page "d'accueil" de mon application, puis un autre dossier qui se rapporterait à ma page "paramètres" car je voulais organiser mon xml.

Cependant, Android ne reconnaît que le dossier de mise en page pour les fichiers XML, pas le dossier de mise en page / accueil ou de mise en page / paramètres, c'est pourquoi il m'a donné l'erreur.

Grâce à la réponse de Mazen Kasser, il m'a aidé à comprendre cela.

Simon
la source
0

J'ai récemment essayé de migrer une application existante vers la conception matérielle. Tout ce que j'avais à faire pour résoudre ce problème était de changer la version du SDK de compilation du projet. Fichier | Paramètres du projet. Sélectionnez l'application et choisissez une version du SDK de compilation pour Lollipop ou une version ultérieure.

Terry Ray
la source
0

Toute solution mentionnée ici m'a aidé. Je publierai mon problème au cas où cela serait utile à quiconque. Dans mon cas, l'erreur se produisait en utilisant la liaison de données . Il semble que des intermédiaires XML de liaison de données soient créés. S'il y a une erreur en essayant d'ouvrir, l'erreur affichera le xml intermédiaire avec cet " URI non enregistré " au lieu d'ouvrir le bon xml avec l'erreur.

TomCobo
la source
0

J'ai eu ce problème et pour moi, c'était dû à la création et à la manipulation de fichiers de ressources en dehors d'Android Studio. J'ai suivi les instructions pour créer de nouveaux fichiers et dossiers de ressources via Android Studio et j'ai résolu le problème. Vous devez créer un nouveau répertoire Resource File Not. Il vous permettra de spécifier ou de créer un répertoire pour vous si vous en avez besoin. Si vous créez des répertoires pour des mises en page pour différentes versions, entrez les informations en haut, y compris le nom du fichier de ressources que vous souhaitez copier dans le nouveau dossier, sélectionnez Version et entrez la version Android. Il créera le répertoire approprié avec une copie de votre ressource.

user2697952
la source
0

Une autre suggestion, qui était la solution pour moi: j'ai eu l'erreur dans la ligne

<resources xmlns:ns1="http://schemas.android.com/tools" xmlns:ns2="urn:oasis:names:tc:xliff:document:1.2">

dans le fichier values.xml qui a été automatiquement généré pendant le processus de construction.

Il a été résolu en ajoutant le androidpréfixe dans le fichier styles.xml.

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="textColorPrimary">@color/textColorPrimary</item>
        <item name="colorBackground">@color/colorPrimaryDark</item>
    </style>

devait être changé en

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textColorPrimary">@color/textColorPrimary</item>
        <item name="android:colorBackground">@color/colorPrimaryDark</item>
    </style>
DanD
la source
0

Qu'est-ce qui a résolu le problème pour moi que je n'ai pas vu mentionné jusqu'à présent - si vous avez plusieurs «saveurs», assurez-vous que la «variante de construction» actuellement sélectionnée correspond à la saveur du fichier de mise en page que vous essayez d'afficher.

Si.
la source
0

Quiconque obtient cette erreur juste après l'importation du projet risque de frapper une importation / synchronisation initiale de gradle infructueuse. Habituellement, il se produit avec des erreurs graves (point d'exclamation clignotant dans le coin inférieur droit). Pour moi, c'était la cause très étrange (le dossier du projet était lié symboliquement): https://stackoverflow.com/a/52952148/44166

PAStheLoD
la source
0

J'ai rencontré le même problème lors de l'ouverture d'Android React Native Project dans Android Studio.

La cause première est que j'ai ouvert le dossier racine de React Native Project au lieu du dossier Android du React Native Project.

Rouvrir le projet sous le dossier Android de React Native Project a résolu mon problème.

V-SHY
la source
-3

Essayez d'installer le plugin Android Tracker. vous le trouverez sur le studio.

Redémarrez le studio

Rajat Bhandari
la source