171

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

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

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

27 回答 27

165

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

于 2013-06-04T05:00:58.017 回答
54

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

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

于 2014-08-07T21:04:27.920 回答
39

我使用 Intellij IDEA 但我认为它也可以在 Android Studio 中工作,你能在 IDE 右下角看到“事件日志”吗,是否有类似“在项目配置中检测到 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>

希望这对您有所帮助。

于 2013-06-04T06:36:18.967 回答
20

这个问题突然出现在我身上,没有任何理由。我刚刚关闭了 Android Studio 中的所有选项卡并重新打开了有问题的 xml 文件。问题解决了!:)

于 2016-10-28T10:20:00.433 回答
8

在 Android Studio 3.1.2 中,由于缓存内存验证错误而发生此错误。,

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

这将删除缓存并重新加载项目将创建新的缓存文件夹并让它变得很好。,

于 2018-06-05T17:12:46.127 回答
6

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

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

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

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

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

我希望这个对你有用!

于 2015-05-28T01:44:10.317 回答
6

它是一个插件问题。

  1. 重启你的安卓工作室。
  2. 它将显示一个启用插件的弹出窗口
  3. 单击启用插件,然后单击确定。

然后它将自动重新启动您的工作室并且工作正常。

希望它会起作用。

于 2016-03-17T06:04:00.547 回答
6

在 Build Variant 中选择合适的风味。

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

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

于 2018-11-16T16:32:19.573 回答
5

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

  • 转到“文件>项目结构>模块”
  • 点击“添加(+)
  • 点击“android”和“apply”,然后点击“ok”
于 2017-01-22T05:16:46.093 回答
4

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

于 2017-05-15T07:24:34.987 回答
3

我有同样的错误。我通过将项目再次导入到 android studio 来解决它。

于 2013-10-09T02:59:20.177 回答
2

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

Settings > Plugins > Android Support
于 2017-11-16T06:31:09.607 回答
1

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

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

感谢 Mazen Kasser 的回答,他帮助我解决了这个问题。

于 2015-04-04T17:11:01.433 回答
1

有时,此错误与清单中的其他错误相关。检查是否缺少一些依赖项以及是否所有标签都已关闭。在我的情况下,我删除了 /res 文件夹中的一个文件夹,我恢复了它并且该错误消失了。

于 2015-08-17T18:19:37.157 回答
1

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

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

添加修复它。

于 2016-07-22T00:00:00.523 回答
1

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

于 2016-11-15T00:32:11.017 回答
1
  • 转到“首选项 > 语言和框架 > 模式和 DTDS”
  • 点击“添加(+)”
  • 单击“应用”,然后单击“确定”

希望它会起作用。

于 2017-04-15T04:36:20.613 回答
1

另一个建议,这对我来说是解决方案:我收到了错误

<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>
于 2017-10-09T20:53:09.833 回答
1

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

TradeClient/TradeClient/app/...

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

  • 删除中间路径“TradeClient”,为 TradeClient/app/...
  • 然后文件-> 使缓存无效/重新启动...
于 2018-06-26T05:35:53.047 回答
0

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

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

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

于 2013-06-09T02:34:03.450 回答
0

最近尝试将现有应用程序迁移到材料设计时遇到了这个问题。我所要做的就是更改项目的编译 SDK 版本。文件 | 项目设置。选择应用程序并选择 Lollipop 或更高版本的编译 SDK 版本。

于 2015-06-19T15:29:47.093 回答
0

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

于 2016-06-08T09:22:17.760 回答
0

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

于 2017-09-06T05:26:53.953 回答
0

到目前为止我还没有提到的为我解决了什么问题 - 如果您有多个“风格”,请确保当前选择的“构建变体”与您尝试查看的布局文件的风格相匹配。

于 2018-08-22T13:47:57.110 回答
0

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

于 2018-11-22T02:40:51.910 回答
0

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

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

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

于 2019-05-17T02:24:36.617 回答
-3

尝试安装 android tracker 插件。你会在工作室找到它。

重启工作室

于 2016-09-14T09:42:28.263 回答