为什么Android Studio报告“未注册URI”?[关闭]


160

因此,我尝试了Android Studio,因为我非常喜欢Resharper,并且注意到IDE内置了一些功能。现在创建了一个默认的新项目,我添加了一个新的布局文件,并想要更改现有的默认“ 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相关的东西)不再被识别(错误消息:“找不到元素'RelativeLayout'的声明”)。

关于如何解决此问题的任何想法?


9
关闭并重新打开Android Studio为我解决了这个问题:)
Umair

1
无效并重新启动缓存,然后它可以工作
thewhitetulip

Answers:


149

您遇到此问题是因为您的目的地不正确!布局资源文件的正确目录必须在“ res-layout”下,而不是在“ res-all-layout”下


2
啊,是的,您绝对正确。我犯的错误是我从<项目根目录> \ <项目名称> \ build \ res \ all \ debug \ layout打开了文件(我认为默认情况下它是打开的,而且我习惯从上到下地工作解释了混乱)。相反,确实应该查看<项目根目录> \ <项目名称> \ src \ main \ res \ layout。
Xilconic

我对清单文件有相同的问题怎么办
Prasad

谢谢!!这对我的作品很大..
Vinoth维诺

1
我遇到了同样的问题,但路径正确。最终通过无效/重新启动进行了修复。只是使缓存无效并不起作用。太好了!:)
史蒂芬·史密斯,

1
对我来说无效/重新启动工作。感谢@stevensmith
Abdul Samad

51

对我来说,这是因为我正在使用调试和发布构建变体。我手动添加了新文件夹src / debug / res / layout / some_layout.xml文件,但它无法识别URI。我将构建变体切换为发布,然后重新调试。这导致Android Studio重新加载内容,错误消失了。

编辑:还请检查您是否具有正确的文件名。我通过添加调试AndroidManifest.xml再次遇到了这个问题,但是错误地将其命名为AndroidManifest.xml.xml。


2
这对我有用。对于那些寻求如何切换构建版本的用户来说,它位于AS的最左侧面板,侧写。单击它,然后在它下面的“调试”实际上是一个下拉列表。
lemuel 2014年

1
对我来说,也是一样。如果您正在查看应用程序自定义项的其他布局,那么Android Studio会加载哪些内容,则会出现错误。
Neeraj Shukla 2015年

这就像一个魅力!谢谢
Virag Brahme'8

你救了我的一天!
阿迪

39

我使用Intellij IDEA,但我认为它也可以在Android Studio中使用,您可以在IDE右下角看到“事件日志”吗,是否有类似“ 在项目Configure中检测到Android框架 ”的消息,这意味着您应该有一个框架配置。如果是这样,只需点击消息链接。
同样,您可以转到“ 文件>项目结构>模块 ”,然后添加一个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>

希望对您有帮助。


2
@Michael Alan Huff,非常感谢您教给我。
2013年

没问题:)快乐堆放。
迈克尔·艾伦·霍夫

17

这个问题对我来说突然出现,没有任何原因。我刚刚关闭了Android Studio中的所有标签,然后重新打开了出现问题的xml文件。问题解决了!:)


3
挽救了我的生命... :)
bangkokguy

多数民众赞成在直到下一次我打算运行该应用程序之前
AvielNiego

无效并重新启动缓存,然后它可以工作
thewhitetulip

8

在Android Studio 3.1.2中,发生此错误是由于对缓存的验证错误。

转到项目文件夹并删除.idea文件夹中的所有内容

这将删除高速缓存,重新加载项目将创建新的高速缓存文件夹,并且一切顺利。,


6

其插件问题。

  1. 重新启动您的android studio。
  2. 它将显示一个用于启用插件的弹出窗口
  3. 单击启用插件,然后单击确定。

然后它将自动重启您的工作室,并且可以正常运行。

希望它能工作。


5

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

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

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

我将结构更改为此,它对我有用:

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

我希望这个对你有用!


5

不知道此错误背后的原因,但我在某个地方发现了此错误,此问题得以解决。

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



2

对我来说,插件Android Support会以某种方式禁用。再次启用插件对我有用。

Settings > Plugins > Android Support

2

在“构建变体”中选择适当的风味。

如果您正在Flavour1下查看特定文件,请在BuildVariants窗口中选择该风味。

如果您的IDE是Android Studio(在撰写本文时为3.2.1),则应该在左下方找到Build Variants窗口,该窗口垂直对齐。


1

有时,此错误与清单中的其他错误相关。检查是否缺少一些依赖项,以及是否关闭了所有标签。就我而言,我已经删除了/ res文件夹中的一个文件夹,将其还原,该错误消失了。


1

对我来说,令人反感的xml文件缺少标题行...

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

添加修复它。


1

重新开始得到这个,现在真正起作用的是在build.gradle中添加一些垃圾。然后尝试同步。当它失败时,请清除垃圾并重新同步。索引后,它可以工作。


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

希望它能工作。


只需添加您的网址。
斯嘉丽

1

对我来说,我从gitlab克隆了一个项目,有目录:

TradeClient / TradeClient / app / ...

然后我遇到这个问题,我通过以下方法解决了这个问题:

  • 删除中间路径“ TradeClient”,作为TradeClient / app / ...
  • 然后文件->使缓存无效/重新启动...


0

我现在遇到了这个问题-我在布局文件夹下创建了一个新文件夹,其中包含与我的应用程序“主页”页面相关的所有xml,然后在我要组织我的“设置”页面时包含另一个文件夹xml。

但是,android只识别xmls的layout文件夹,而不是layout / home或layout / settings文件夹,因此这就是给我错误的原因。

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


0

最近尝试将现有应用迁移到材料设计。我要做的全部工作是更改项目的Compile SDK版本。档案| 项目设置。选择应用程序,然后选择Lollipop或更高版本的Compile SDK版本。


0

这里提到的任何解决方案都对我有所帮助。我会发布我的问题,以防万一对任何人都有帮助。就我而言,该错误是使用数据绑定发生的。似乎使用数据绑定xmls创建了中间体。如果在尝试打开错误时出现错误,则将显示带有此“ 未注册URI ”的中间xml,而不是通过错误打开正确的xml。


0

我遇到了这个问题,对我来说,这是由于在Android Studio外部创建和处理资源文件而引起的。我按照有关通过Android Studio创建新资源文件和文件夹的说明进行操作,并解决了该问题。您需要创建一个新的“非资源文件”目录。如果需要,它将允许您指定或创建目录。如果要为不同版本的布局创建目录,请在顶部输入信息,包括要复制到新文件夹的资源文件的名称,然后选择“版本”并输入Android版本。它将创建一个适当的目录,其中包含您的资源的副本。


0

另一个建议是对我的解决方案:我在一行中得到了错误

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

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

通过android在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>

必须更改为

<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

到目前为止,我尚未见过的解决该问题的方法-如果您有多个“风味”,请确保当前选择的“构建变体”与您要查看的布局文件的风味匹配。


0

在项目导入后立即得到此错误的任何人都可能会遇到初始gradle导入/同步失败的情况。通常会遇到严重错误(右下角闪烁感叹号)。对我来说,这是一个非常奇怪的原因(项目文件夹被符号链接):https : //stackoverflow.com/a/52952148/44166


0

我在Android Studio中打开android React Native Project时遇到了同样的问题。

根本原因是我打开了React Native Project的根文件夹,而不是React Native Project的android文件夹

重新打开React Native Project的android文件夹下的项目解决了我的问题。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.