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

所以我尝试了 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’的声明”)。

对于如何解决这个问题有什么想法吗?

enter image description here

enter image description here

enter image description here

241871 次浏览

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

我使用 Intellij IDEA,但是我认为它也可以在 Android Studio 中工作,你能看到 IDE 右下角的“ Event Log”,它是否有一些类似于“ 在项目 Configure 中检测到 Android 框架”的消息,这意味着你应该有一个框架配置。如果是这样,只要按照消息链接。
用同样的方法,你可以进入“ 文件 > 专案结构 > 模组”,然后添加一个 Android Facet。

enter image description here

顺便说一下,如果我想像您一样使用定制的名称空间,我将在定义清单元素的 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>

希望这个能帮到你。

Android Studio 中的新构建系统创建一个 build文件夹。这个文件夹以及 gradle文件夹上的代码检查呕吐物。在运行代码检查时,可能应忽略这些文件夹。

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

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

我也犯了同样的错误。我通过将项目再次导入到 android 工作室来解决这个问题。

对我来说,这是因为我正在使用一个调试和发布版本变体。我手动添加了新的文件夹 src/debug/res/outs/some _ layout.xml 文件,它不能识别 URI。我将构建变体切换到发布版本,然后返回到调试版本。这导致 Android Studio 重新加载一些东西,错误消失了。

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

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

然而,android 只能识别 xml 的布局文件夹,而不能识别布局/主页或布局/设置文件夹,这就是为什么它会给我错误。

感谢 Mazen Kasser 的回答,他帮助我弄明白了这个问题。

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

我的项目/ 答复/ 图则/ Xml 平面图-土地/ Xml

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

我把结构改成了这样,它对我很有效:

我的项目/ 答复/ 图则/ Xml 平面图-土地/ Xml

我希望这能有所帮助!

最近在尝试将一个现有的应用程序迁移到材质设计时遇到了这个问题。我所要做的就是修改项目的 CompileSDK 版本。文件 | 项目设置。选择 app 并为棒棒糖或更高版本选择 CompileSDK 版本。

有时,此错误与清单中的其他错误相关联。检查是否有一些缺失的依赖项,以及是否关闭了所有标记。在我的例子中,我删除了/res 文件夹中的一个文件夹,我还原了它,错误消失了。

这是插件的问题。

  1. 重启你的机器人工作室。
  2. 它将为启用插件显示一个弹出窗口
  3. 点击启用插件,然后点击 OK。

然后它会自动重新启动您的工作室和作品将罚款。

希望能成功。

这里提到的任何解决方案都对我有帮助。我会把我的问题贴出来,以防对任何人都有帮助。 在我的例子中,错误是使用 数据绑定发生的。似乎是使用数据绑定创建了 xmls 中间层。如果有一个错误尝试打开该错误将显示中间的 xml 与此“ URI 未注册”,而不是打开正确的 xml 与错误。

对我来说,有问题的 xml 文件缺少标题行..。

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

加上这个就搞定了。

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

重启摄影棚

这个问题突然出现在我面前,没有任何原因。我只是关闭了 Android Studio 中的所有选项卡,并重新打开了有问题的 xml 文件。问题解决了!:)

重新开始,现在真正有效的是在 build.gradle 中添加一些垃圾,然后尝试同步。 当它失败时,删除垃圾并重新同步。 建立索引之后,它就可以工作了。

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

  • 点击“文件 > 项目结构 > 模块”
  • 点击“添加 (+)
  • 点击“ android”和“ application”,然后点击“ ok”
  • 进入「选项 > 语言及框架 > 架构及 DTDS 」
  • 点击“添加(+)”
  • 点击“申请”然后点击“确定”

希望能成功。

原来我正在编辑 xml 的 DEBUG 版本,要修复它,只需关闭包含错误的选项卡并重新打开它

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

另一个建议,也是我的解决方案: 我在线路上犯了个错误

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

在构建过程中自动生成的 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 Support以某种方式被禁用。启用插件再次为我工作。

Settings > Plugins > Android Support

在 Android Studio 3.1.2中,这个错误是由于缓存内存验证错误造成的,

转到 Project 文件夹和 删除。想法文件夹中的所有内容

这将删除缓存内存和重新加载的项目将创建新的缓存内存文件夹,使它好去,

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

TradeClient/TradeClient/app/...

然后我遇到了这个问题,我用下面的方法解决了这个问题:

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

到目前为止我还没有看到的修复方法——如果您有多种“风格”,请确保当前选择的“构建变体”与您试图查看的布局文件的风格相匹配。

选择适当的风味在建立变种。

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

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

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

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

根本原因是我打开了 React NativeProject 的根文件夹,而不是 React NativeProject 的 机器人文件夹

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