错误:不允许匹配“[xX][mM][lL]”的处理指令目标[重复]

Posted

技术标签:

【中文标题】错误:不允许匹配“[xX][mM][lL]”的处理指令目标[重复]【英文标题】:ERROR:The processing instruction target matching "[xX][mM][lL]" is not allowed [duplicate] 【发布时间】:2013-11-23 23:15:28 【问题描述】:

我正在使用 eclipse 编写一个 android 应用程序,但我停下来了。我尝试用

关闭我的代码
<?xml version="1.0" encoding="utf-8"?>

但我不断收到错误消息

"匹配"[xX][mM][lL]"的处理指令目标不是 允许。”

代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:orientation="horizontal" >

<EditText
        android:id="@+id/editText1"
        android:layout_
        android:layout_
        android:ems="10"
        android:inputType="text" >
        <requestFocus />

</EditText>  

<resources>
    <string android:name="app_name"></string>
    <string android:name="edit_message"></string>
    <string android:name="button_send"></string>
    <string android:name="action_settings"></string>
    <string android:name="title_activity_main"></string>
</resources>

<Button
        android:layout_
        android:layout_
        android:text="@string/button_send" />

<EditText
        android:id="@+id/editText2"
        android:layout_
        android:layout_
        android:ems="10"
        android:inputType="text" >
        <requestFocus />

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

我犯了什么错误吗?如果我这样做了,请告诉我。

【问题讨论】:

XML 文件在&lt;?xml 之前不能有任何其他字符,甚至不能有空格、换行符或Unicode 字节顺序标记。如果您没有看到任何内容,则很可能是 BOM。将 XML 文件重新保存为 ASCII 或 Unicode-without-BOM(不要使用 Windows 记事本创建和编辑 XML!) 解决了导致此错误消息的 三个 可能原因中的每一个的解决方法here 在我的情况下,我的 xml 布局文件中有两次 这行。我删除了它,它可以工作。 【参考方案1】:

请确保 xml 文件开头的&lt;?xml 之前没有任何字符。 希望对你有帮助

【讨论】:

我在描述中提到了这个异常,但它只发生在第一次..下次我尝试解析它时一切都很好..如何解决,即使是第一次我也不应该得到它【参考方案2】:

是的,那个 xml 列表有几个错误(假设它只是一个文件)。

删除这些字符串资源并将它们放在项目的res/values 文件夹内的自己的strings.xml 文件中。此外,该 strings.xml 文件也应该以它自己的 &lt;?xml version="1.0" encoding="utf-8"?&gt;

开头
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string android:name="app_name"></string>
<string android:name="edit_message"></string>
<string android:name="button_send"></string>
<string android:name="action_settings"></string>
<string android:name="title_activity_main"></string>
</resources>

这不是错误,但您可能希望像这样向这些字符串资源添加一些可能的文本标签:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string android:name="app_name">My Application Name</string>
<string android:name="edit_message"></string>
<string android:name="button_send">Send</string>
<string android:name="action_settings"></string>
<string android:name="title_activity_main"></string>
</resources>

不要忘记关闭您的 LinearLayout:

</LinearLayout>

删除两个 requestFocus 之一,我会假设您应该每个布局只有一个(再次假设,您只想向我们显示一个文件而不是多个文件)。

<requestFocus />

并删除最后一行(这是 Eclipse 所抱怨的):

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

您确实保留了 xml 文件的第一行中的那个,但是您从最后一行中删除了那个,因为这种类型的指令不会关闭。

如果这解决了您的所有问题,请告诉我。我不能确定它确实如此,因为我没有花时间打开我的另一台计算机并检查 Eclipse。

【讨论】:

感谢您的回复。我将更改代码,看看它是否有效。 嗨。不幸的是,当我将关闭添加到线性布局选项卡时,我仍然遇到错误。我收到此消息“元素类型“LinearLayout”必须后跟属性规范,“>”或“/>”。如果能得到任何帮助,我将不胜感激。谢谢。 删除 xmlns:tools="schemas.android.com/tools"。只保留以 xmlns:android= 开头的那个(如果您仍然遇到同样的错误,请在此处发表您的最后一行作为评论。) 嗨。不幸的是,我仍然遇到同样的错误。这是我的线性布局代码:schemas.android.com/apk/res/android" android:layout_ android:layout_ android:方向="水平" 【参考方案3】:

是的,&lt;?xml之前不应该有任何字符..甚至空白字符..我遇到了同样的问题..得到了解决..

【讨论】:

【参考方案4】:

1) 在 XML 文件中使用或标记时,请确保您的代码不包含任何未声明的变量(在 string.xml 文件中)

2) 确保“R.java”文件反映了所有使用的变量。

3) 重新构建您的项目并进行验证。

【讨论】:

【参考方案5】:

打开 manifest.xml 按 ctrl+A 然后 ctrl+I 。它会自动格式化您的 manifest.xml。

【讨论】:

【参考方案6】:

如果语法正确并且仍然出现此错误,则只需打开 xml 文件并右键单击并选择验证。

【讨论】:

这应该是一条评论【参考方案7】:

1.确保您已在清单文件的开头写... 2.确保文件前不应该有任何字符...

【讨论】:

1.确保你在manifest文件的开头写了... 2.确保 ....之前不应该有任何字符

以上是关于错误:不允许匹配“[xX][mM][lL]”的处理指令目标[重复]的主要内容,如果未能解决你的问题,请参考以下文章

不允许有匹配 “[xX][mM][lL]“ 的处理指

不允许匹配“[xX][mM][lL]”的处理指令目标[重复]

Maven 发布插件:不允许匹配“[xX][mM][lL]”的处理指令目标

配置文件报错:不允许有匹配 [xX][mM][lL] 的处理指令目标。

不允许有匹配 "[xX][mM][lL]" 的处理指令目标

配置文件报错:不允许有匹配 [xX][mM][lL] 的处理指令目标。