Colors.xml文件中出现错误“错误:序言中不允许包含内容。”

时间:2018-12-13 11:12:56

标签: android

我在android studio中创建了一个新项目,并且出现此错误。我已经清理并重建项目,但是此错误无法解决。 enter image description here

缺少Colors.xml的默认编码,并且此自动生成的文本正在显示。

7 个答案:

答案 0 :(得分:0)

您的XML和XSD(或DTD)中的编码不同。
XML文件头:<?xml version='1.0' encoding='utf-8'?>
XSD文件头:<?xml version='1.0' encoding='utf-16'?>

导致这种情况的另一种可能的情况是,在XML文档类型声明之前发生了任何事情。即您可能在缓冲区中有以下内容:

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

,甚至是空格或特殊字符。

缓冲区中可能有一些特殊的字符,称为字节顺序标记。 在将缓冲区传递给解析器之前,请先执行此操作……

String xml = "<?xml ...";
xml = xml.trim().replaceFirst("^([\\W]+)<","<");

答案 1 :(得分:0)

“序言中不允许的内容”实际上是XML解析器的错误。这意味着应该有XML文档,但是已经收到了其他信息。

colors文件是一个资源文件,您可以将您的资源放在标签下。 您不能像在此那样在此文件中包含包含内容。

以下是您可以用来理解的示例

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <color name="colorBlue">#000099</color>
    <color name="colorRed">#ff0015</color>
</resources>

答案 2 :(得分:0)

请注意错误是:

  

序言中不允许内容

.svc文件的格式应该完全正确,例如:

colors.xml

将由于项目item<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#008577</color> <color name="colorPrimaryDark">#00574B</color> <color name="colorAccent">#D81B60</color> </resources>

之前放错位置而导致此错误

答案 3 :(得分:0)

面临同样的问题。使用资源名称删除或修改所有xml,并将其用作引用。它将起作用。

答案 4 :(得分:0)

我解决了这个问题,如下图所示: 第一张图片(错误) Error Image

解决方案: 转到您的用户文件夹: User Folder

我删除了这两个文件(.AndroidStudio3.4)和(.gradle)。 note / Android将自动下载

答案 5 :(得分:0)

在安装Android Studio(3.5.3)并创建了我的第一个Hello Android项目之后,一切顺利,并且该应用程序运行得非常好,我能够进行修改并在仿真器上查看它们。

但是,几天后,我决定在同一项目下创建一个新模块,或者甚至尝试创建一个新的Android项目,我开始遇到与您相同的问题,因为它显示“错误:不允许出现内容在序言中”。它指向的是colors.xml。但是,当我运行Gradle分析(Gradle Scripts-> Analyze-> Inspect Code)时,它表明新项目中的大多数* .xml文件都存在相同的问题。如果打开xml文件,它看起来会损坏,但是由于某种原因,代码已加密。

对我来说真正有效的解决方法是用我第一个工作项目中的代码替换损坏/加密的代码。我构建了该应用程序,它运行得很好。

我必须重新访问的xml文件是:

- colors.xml
- ic_launcher_foreground.xml
- ic_launcher_background.xml
- ic_launcher_round.xml
- ic_launcher.xml

这可能不是最好的解决方案,但对我来说确实可行

答案 6 :(得分:0)

我通过删除colors.xml文件并从另一个项目粘贴colors.xml来解决它。除非您修改原始颜色文件,否则它将需要重写,它将很好地工作。