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?


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"


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.


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.


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! :)


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.,


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.


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!


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"

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



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

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.


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.


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é.


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.


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.


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 ...

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


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.


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.


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.


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.


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>

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.


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


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.


-3

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

Redémarrez le studio

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.