11

在将项目转换为 Android 构建系统的过程中,每当我尝试编译时都会出现此错误。

Gradle: Error parsing XML: prefix must not be bound to one of the reserved namespace names

合并的 values.xml 文件包含以下根元素:

<resources xmlns:ns1="http://www.w3.org/2000/xmlns/">

此错误的原因是什么,如何解决?

4

7 回答 7

15

我刚刚花了大约 2 个小时来挖掘破坏了我们的 Gradle 构建的 Git 提交。此提交包含超过 200 个更改的文件,其中包含 4000 多条修改的行。你可以想象它是多么有趣;)

无论如何,这就是导致我们这个模糊的 Gradle 错误的原因:一些带有xmlns:custom属性的样式被定义在res/values/styles.xml

<style name="content" xmlns:custom="http://schemas.android.com/apk/res-auto">
    <item name="android:textSize">14sp</item>
    <item name="android:textColor">@color/content</item>
</style>

如您所见,custom甚至没有使用命名空间。出于某种原因,Ant 和 ADT 构建并不关心这个属性,但是 Gradle:processDebugResources任务却出现了一条不太有用的错误消息。

删除xmlns:custom="http://schemas.android.com/apk/res-auto"固定它。

使用的版本:Gradle 1.10 和'com.android.tools.build:gradle:0.8.0'

于 2014-02-01T20:29:00.503 回答
4

有同样的问题。我的是由于 Crashlytics。他们自动生成的 xml 文件具有无效的名称空间。

于 2015-07-23T17:51:24.633 回答
3

首先阅读我所有的答案:似乎这个错误是由于另一个编译问题......

最初,为了处理这个错误,我更新了我的代码,如下所示:

<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
 ...
</resources>

进入这段代码:

<resources ignore="MissingTranslation">
     ...
</resources>

它在一开始对我有用……但是由于 tu gradle 配置,我遇到了另一个编译错误……现在这些编译错误已得到纠正,我之前的更新不再起作用。我必须添加命名空间来生成 APK 文件。

所以,在处理这个错误之前,一定要先纠正所有的编译错误......

于 2015-03-02T11:38:28.627 回答
2

我的接近所有这些。有人在字符串标签内声明了一个名称空间。像这样的东西:

<string name="google_play" xmlns:tools="http://schemas.android.com/tools" >Google Play</string>

我显然删除了 ns 引用,因为它不应该那样存在。我不得不在整个代码库中搜索“xmlns:”这个词,并寻找一个在错误位置的。花了一段时间。

于 2015-11-04T22:47:57.153 回答
1

我在与 Firebase 同步时遇到了这个问题。这是由于应用程序级别 gradle 中的分析包依赖性。通过评论/删除解决了

实施 'com.google.firebase:firebase-analytics'

于 2021-01-17T18:35:20.020 回答
0

当我将 Android Studio 1.5 更新到 2.2 版本时,我遇到了同样的问题。一个快速的解决方案是当你在更新版本中打开现有项目时,只需“忽略”更新 gradle 插件/版本。

于 2016-08-24T19:35:52.330 回答
0

就我而言,我在 styles.xml 中找到了以下代码

 <item name="android:listSelector">
                <selector xmlns:android="http://schemas.android.com/apk/res/android">
                    <item android:drawable="@color/pressed_color" android:state_pressed="true" />
                    <item android:drawable="@color/focused_color" android:state_focused="true" />
                    <item android:drawable="@color/item_list_color" />
                </selector>
            </item>

在选择器中存在错误

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

我删除了上面的代码并解决了我的问题

于 2016-09-03T22:28:13.027 回答