¿Por qué Android Studio informa "URI no está registrado"? [cerrado]

160

Así que probé con Android Studio, porque realmente me gusta Resharper y noté que el IDE tenía incorporadas algunas de sus funciones. Después de haber creado un nuevo proyecto predeterminado, agregué un nuevo archivo de diseño y quise cambiar el diseño de ejemplo predeterminado 'hola mundo' existente, y obtuve un error "URI no está registrado" en las siguientes líneas:

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

Todavía no he hecho nada más al proyecto generado por defecto. Me he encontrado con otra pregunta que parece estar relacionada ( ¿el URI del esquema del proyecto de Android Intellij no está registrado? ), Pero ignorar algo me parece extraño. En realidad lo intenté, pero eso hace que RelativeLayout(y probablemente todas las demás cosas relacionadas con Android) ya no sean reconocidas (mensaje de error: "No se puede encontrar la declaración del elemento 'RelativeLayout'").

¿Alguna idea sobre cómo resolver este problema?

Xilconic
fuente
9
Cerrar y volver a abrir Android Studio resolvió este problema para mí :)
Umair
1
Invalidar y reiniciar el caché y luego funciona
thewhitetulip

Respuestas:

149

¡Tienes este problema porque estás en el destino equivocado! El directorio correcto para el archivo de recursos de diseño debe estar en "res-layout" no "res-all-layout"

Mazen Kasser
fuente
2
Ah sí, tienes toda la razón. El error que cometí fue que abrí el archivo desde <raíz del proyecto> \ <nombre del proyecto> \ build \ res \ all \ debug \ layout (creo que está abierto de forma predeterminada y creo que estoy acostumbrado a trabajar de arriba a abajo) eso explica la confusión). En cambio, uno debería mirar a <raíz del proyecto> \ <nombre del proyecto> \ src \ main \ res \ layout.
Xilconic
tuve el mismo problema con el archivo de manifiesto qué hacer
Prasad
¡¡Gracias!! Funciona muy bien para mí ..
Vinoth Vino
1
Llegué al mismo problema pero mis caminos eran correctos. Finalmente fue arreglado por invalidar / reiniciar. Simplemente invalidar el caché no funcionó. ¡AUGH! :)
steven smith
1
para mí invalidar / reiniciar funcionó. gracias @stevensmith
Abdul Samad
51

Para mí esto fue porque estaba usando una variante de compilación de depuración y lanzamiento. Agregué las nuevas carpetas src / debug / res / layout / some_layout.xml manualmente, y no reconoció el URI. Cambié la variante de compilación a versión y luego volví a depurar. Esto provocó que Android Studio volviera a cargar algo y el error desapareció.

EDITAR: también verifique que tenga el nombre de archivo correcto. Tuve este problema nuevamente al agregar un AndroidManifest.xml de depuración, pero erróneamente lo llamé AndroidManifest.xml.xml.

eliasbagley
fuente
2
Esto funcionó para mí. Para aquellos que buscan cómo cambiar la variante de compilación, está en el panel izquierdo de AS, escrito de lado. Haga clic en él, luego debajo de él "depurar" es en realidad un menú desplegable.
lemuel
1
Para mí, lo mismo era cierto. Si está buscando un diseño de sabor diferente de la aplicación personalizada, entonces lo que carga Android studio, obtendrá un error.
Neeraj Shukla
¡Esto funciona de maravilla! gracias
Virag Brahme
Salvaste mi día !!
Adi
39

Utilizo Intellij IDEA pero creo que también funcionará en Android Studio. ¿Puede ver el "Registro de eventos" en la esquina inferior derecha del IDE? ¿Tenía algún mensaje como " Se detectó el marco de Android en el proyecto Configurar ", eso significa que debe tener una configuración de marco. Si es así, solo sigue el enlace del mensaje.
De la misma manera, puede ir a " Archivo> Estructura del proyecto> Módulos " y luego agregar una Faceta de Android.

ingrese la descripción de la imagen aquí

por cierto, si quiero usar un espacio de nombres personalizado como lo haces, escribiré el identificador de recursos como el nombre de mi paquete mientras defino el atributo del paquete AndroidManifest.xml del elemento manifiesto, a continuación está mi código.

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

Espero que esto te ayude.

VinceStyling
fuente
2
@Michael Alan Huff, muchas gracias por enseñarme.
VinceStyling
no hay problema :) feliz apilamiento.
Michael Alan Huff
17

Este problema apareció de repente para mí, sin ningún motivo. Acabo de cerrar todas las pestañas en Android Studio y volví a abrir el archivo xml que tenía problemas. ¡Problema resuelto! :)

Regis_AG
fuente
3
salvó mi vida ... :)
bangkokguy
eso solo ayuda hasta la próxima vez que intente ejecutar la aplicación
AvielNiego
Invalidar y reiniciar el caché y luego funciona
thewhitetulip
8

En Android Studio 3.1.2, este error se produce debido a una validación incorrecta de la memoria caché.

Vaya a la carpeta Proyecto y elimine todo el contenido de la carpeta .idea

Esto eliminará la memoria caché y volver a cargar el proyecto creará una nueva carpeta de memoria caché y hará que funcione.

Kulasekar
fuente
6

Es un problema de complementos.

  1. Reinicia tu estudio de Android.
  2. Mostrará una ventana emergente para habilitar complementos
  3. haga clic en habilitar complementos y luego haga clic en Aceptar.

entonces reiniciará automáticamente su estudio y funcionará bien.

Espero que funcione.

Dalvinder Singh
fuente
5

Mi problema era que mis carpetas estaban estructuradas como:

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

(Mi Slayout-landcarpeta estaba en mi layoutcarpeta)

Cambié la estructura a esto y funcionó para mí:

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

¡Espero que esto ayude!

androidtitan
fuente
5

No sé la razón detrás de este error, pero descubrí esto en alguna parte y resolvió mi problema.

  • Vaya a "Archivo> Estructura del proyecto> Módulos"
  • Haga clic en "agregar (+) "
  • Haga clic en "Android" y "Aplicar" y luego en "Aceptar"
Mayank Raj
fuente
4

Resulta que estaba editando la versión DEPURACIÓN del xml, para solucionarlo, simplemente cierre la pestaña que tiene el error y vuelva a abrirlo

Dinesh Kumar
fuente
3

Yo tenía el mismo error. Lo resolví importando el proyecto nuevamente al estudio de Android.

Nicolás Schmidt Gubbins
fuente
2

Para mí, el complemento Android Supportse desactiva de alguna manera. Habilitar complementos nuevamente funcionó para mí.

Settings > Plugins > Android Support
Dipali s.
fuente
2

Seleccione el sabor apropiado en Build Variants.

Si está viendo un archivo en particular en Flavour1, seleccione ese sabor en la ventana BuildVariants.

Si su IDE es Android Studio (3.2.1 al momento de escribir esto), debería encontrar la ventana Build Variants en la parte inferior izquierda, alineada verticalmente.

Mahi
fuente
1

A veces este error está correlacionado con otros errores en su manifiesto. Compruebe si faltan algunas dependencias y si todas las etiquetas están cerradas. En mi caso, eliminé una carpeta en la carpeta / res, la restauré y ese error desapareció.

Cristian Traìna
fuente
1

Para mí, a los archivos xml ofensivos les faltaba la línea de encabezado ...

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

Agregar eso lo arregló.

Batalla de Clark
fuente
1

Comencé a obtener esto nuevamente, lo que realmente funciona ahora es agregar algo de basura dentro de build.gradle. Luego intente y sincronice. Cuando falla, elimine la basura y vuelva a sincronizar. Después de la indexación, funciona.

Manoj Gopal
fuente
1
  • Vaya a "Preferencias> Idiomas y marcos> Esquemas y DTDS"
  • Haga clic en "agregar (+)"
  • Haga clic en "aplicar" y luego en "ok"

Espero que funcione.

Scarlett
fuente
solo agrega tu url.
Scarlett
1

Para mí, clono un proyecto de gitlab, hay una tabla de contenido:

TradeClient / TradeClient / app / ...

entonces encuentro este problema, lo resuelvo por el siguiente método:

  • elimine la ruta intermedia "TradeClient", como TradeClient / app / ...
  • luego Archivo -> Invalidar cachés / reiniciar ...
zhangliang
fuente
0

El nuevo sistema de compilación en Android Studio crea una buildcarpeta. El código de inspección barfs en esta carpeta, así como la gradlecarpeta. Estas carpetas deben ser ignoradas al ejecutar la inspección de código.

He planteado un problema con el equipo de Android Studio en:

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

Saad Farooq
fuente
0

Tenía este problema ahora: creé una nueva carpeta debajo de la carpeta de diseño que contendría todo lo relacionado con xml con mi página de "inicio" de mi aplicación y luego otra carpeta que se relacionaría con mi página de "configuración", ya que quería organizar mi xml.

Sin embargo, Android solo reconoce la carpeta de diseño para xmls, no la carpeta de diseño / inicio o diseño / configuración, por eso me dio el error.

Gracias a la respuesta de Mazen Kasser, me ayudó a resolver esto.

Simón
fuente
0

Me encontré con esto recientemente tratando de migrar una aplicación existente al diseño de materiales. Todo lo que tuve que hacer para solucionarlo fue cambiar la versión del SDK de compilación del proyecto. Archivo | Configuración del proyecto. Seleccione la aplicación y elija una versión de Compilar SDK para Lollipop o superior.

Terry Ray
fuente
0

Cualquier solución mencionada aquí me ayudó. Publicaré mi problema en caso de que sea útil para alguien. En mi caso, el error ocurría usando el enlace de datos . Parece que con el enlace de datos se crean intermedios xmls. Si hay un error al intentar abrir, el error mostrará el xml intermedio con este " URI no registrado " en lugar de abrir el xml correcto con el error.

TomCobo
fuente
0

Tuve este problema y para mí fue debido a la creación y manipulación de archivos de recursos fuera de Android Studio. Seguí las instrucciones sobre cómo crear nuevos archivos y carpetas de recursos a través de Android Studio y resolví el problema. Necesita crear un nuevo directorio de Archivo de recursos no. Le permitirá especificar o crear un directorio para usted si lo necesita. Si está creando directorios para diseños para diferentes versiones, ingrese la información en la parte superior, incluido el nombre del archivo de recursos que desea copiar en la nueva carpeta y seleccione Versión e ingrese la versión de Android. Creará el directorio apropiado con una copia de su recurso.

usuario2697952
fuente
0

Otra sugerencia, que fue la solución para mí: recibí el error en la línea

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

en el archivo values.xml que se generó automáticamente durante el proceso de compilación.

Se resolvió agregando el androidprefijo en el archivo 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>

tuvo que ser cambiado a

<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
fuente
0

Lo que me solucionó que no he visto hasta ahora: si tiene varios 'sabores', asegúrese de que la 'variante de compilación' seleccionada actualmente coincida con el sabor del archivo de diseño que está tratando de ver.

Si.
fuente
0

Cualquiera que reciba este error justo después de la importación del proyecto podría estar golpeando una importación / sincronización inicial incorrecta de Gradle. Por lo general, se encuentra con errores graves (signo de exclamación parpadeante en la esquina inferior derecha). Para mí, esta fue la causa muy extraña (la carpeta del proyecto estaba vinculada): https://stackoverflow.com/a/52952148/44166

PASTHELD
fuente
0

Encontré el mismo problema al abrir Android React Native Project en Android Studio.

La causa raíz es que abrí la carpeta raíz de React Native Project en lugar de la carpeta de Android del React Native Project.

Volver a abrir el proyecto en la carpeta de Android de React Native Project resolvió mi problema.

V-SHY
fuente
-3

Intenta instalar el complemento rastreador de Android. Lo encontrarás en el estudio.

Reiniciar el estudio

Rajat Bhandari
fuente