为什么Android Studio报告“URI未注册”?

所以我给了Android Studio一个尝试,因为我真的很喜欢Resharper,并注意到IDE有一些内置的function。 现在已经创build了一个默认的新项目,我添加了一个新的布局文件,并希望更改现有的默认“hello world”示例布局,并且在下面的行中出现了“URI未注册”错误:

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

我还没有做任何其他的默认生成的项目。 我遇到了另一个似乎相关的问题( Intellij Android项目模式URI没有注册? ),但只是忽略了一些事情,我觉得很奇怪。 我实际上尝试过,但这导致RelativeLayout (和可能所有其他Android相关的东西)不被识别(错误消息:“无法find元素'RelativeLayout'”)的声明。

任何想法如何解决这个问题?

你有这个问题,因为你在错误的目的地! 布局资源文件的正确目录必须在“res-layout”而不是“res-all-layout”

让我知道,如果这解决了你的问题…祝你好运

对我来说,这是因为我正在使用一个debugging和发布构build变体。 我手动添加了新的文件夹src / debug / res / layout / some_layout.xml文件,并且不能识别URI。 我将构build变体切换到释放状态,然后再回到debugging状态。 这导致Android Studio重新加载一些东西,错误消失了。

编辑:另外检查你有正确的文件名。 我通过添加一个debuggingAndroidManifest.xml再次遇到了这个问题,但错误地将其命名为AndroidManifest.xml.xml。

我使用Intellij IDEA,但我认为它也可以在Android Studio中工作,你可以在IDE右下angular看到“事件日志”,是否有这样的消息:“ 在configuration项目中检测到Android框架 ”,这意味着你应该有一个框架configuration。 如果是这样,只需按照消息链接。
以同样的方式,你可以去“ 文件>项目结构>模块 ”,然后添加一个Android Facet。

在这里输入图像描述

顺便说一句,如果我想像你一样使用一个自定义的命名空间,我将编写资源标识符作为我的包名称,因为我定义了manifest元素的AndroidManifest.xml包属性,下面是我的代码。

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

希望这可以帮助你。

这个问题突然出现了,没有任何理由。 我刚刚closures了Android Studio中的所有选项卡,并重新打开了有问题的XML文件。 问题解决了! 🙂

事实certificate,我正在编辑xml的DEBUG版本,以解决它,只需closures有错误的选项卡,并重新打开它

它是一个插件的问题。

  1. 重新启动你的android studio。
  2. 它会显示启用插件的popup窗口
  3. 点击启用插件,然后点击好的。

那么它会自动重新启动你的工作室和工程将罚款。

希望它会起作用。

我有同样的错误。 我通过再次将项目导入到android studio中解决了这个问题。

我的问题是,我的文件夹结构如下:

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

(我的Slayout-land文件夹在我的layout文件夹中)

我改变了这个结构,它为我工作:

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

我希望这有助于!

不知道这个错误背后的原因,但我发现这个地方,它解决了我的问题。

  • 转到“文件>项目结构>模块”
  • 点击“添加(+)
  • 点击“android”和“apply”然后点“确定”

有时候,这个错误与清单中的其他错误有关。 检查是否有一些缺失的依赖关系,如果所有的标签都closures。 在我的情况下,我已经删除/ res文件夹中的一个文件夹,我恢复它,该错误消失。

对我来说,有问题的XML文件缺less标题行…

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

添加,修复它。

  • 转到“首选项>语言和框架>模式和DTDS”
  • 点击“添加(+)”
  • 点击“应用”,然后“确定”

希望它会起作用。

对于我来说,我想在build.gradle(模块应用程序)中compile 'com.android.support:cardview-v7:25.0.1'

Android Studio中的新构build系统创build一个build文件夹。 此文件夹上的代码检查栏以及gradle文件夹。 运行代码检查时,应该忽略这些文件夹。

我在Android Studio团队提出了一个问题:

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

我现在有这个问题 – 我在布局文件夹下创build了一个新的文件夹,其中将包含所有与我的应用程序的“home”页面相关的xml,然后是与我的“settings”页面有关的另一个文件夹,因为我想组织我的XML。

但是,android只识别xmls的布局文件夹,而不是layout / home或layout / settings文件夹,这就是为什么它给了我错误。

感谢Mazen Kasser的回答,他帮助我弄清楚了这一点。

最近尝试将现有的应用程序迁移到材料devise。 我所需要做的就是修改项目的Compile SDK Version。 文件| 项目设置。 select应用程序,并select棒棒糖或更高的编译SDK版本。

这里提到的任何解决scheme帮助我 我会发布我的问题,以防万一对任何人有帮助。 在我的情况下,错误发生在使用数据绑定 。 看来,使用数据绑定xml中间体创build。 如果尝试打开错误时出现错误,将显示带有此“ URI未注册 ”的中间XML,而不是打开正确的xml。

开始得到这个,现在实际工作是在build.gradle里面添加一些垃圾。 然后尝试并同步。 当它失败时,清除垃圾并重新同步。 索引后,它工作。

大部分时间将通过重build项目来解决

对我来说,我手动将xml文件放在值文件夹中。 然后问题显示。 我也注意到,在我给出的XML文件名和数组名是相同的。 所以,我重命名XML文件名称和restrat Android工作室。

问题已经消失!

我有这个问题,对我来说,这是由于在Android Studio之外创build和操作资源文件。 我遵循了通过Android Studio创build新资源文件和文件夹的说明并解决了这个问题。 您需要创build一个新的资源文件不是目录。 它会让你指定或创build一个目录,如果你需要它。 如果要为不同版本的布局创build目录,请在顶部input信息,包括要复制到新文件夹的资源文件的名称,然后select版本并inputAndroid版本。 它将创build一个相应的目录,其中包含资源的副本。

另一个build议,这是对我的解决scheme:我得到了错误的线

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

在构build过程中自动生成的values.xml文件中。

这是通过在styles.xml文件中添加android前缀来解决的。

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

必须改变

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

尝试安装Android跟踪器插件。 你会发现它在工作室。

重新开始工作室