在Android ADT中,有效的XML文件会出现“解析失败”的错误。

4

我制作了一个XML文件:

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:state_pressed="true"
   android:drawable="@drawable/calender_h" />
  <item
   android:state_pressed="false"
  android:drawable="@drawable/calender_n" />  
</selector>

但是它给了我以下错误:

无法解析文件 G:\eclipseHeliosWorkspace\WineCountry\res\drawable\calendar_selector.xml

可能出了什么问题?

只需从项目->清理中清理项目即可。 - Paresh Mayani
我也做了那个...但没有任何区别。 - ekjyot
有什么问题吗?只需在Eclipse中检查“问题”窗口即可。然后在此处发布。 - user370305
我已经检查了问题窗口,甚至没有显示任何问题。 - ekjyot
8个回答

3

我不确定是否完全相同,但是当我更新ADT 15时,库项目发生了类似的问题。这是谷歌目前仍然未解决的问题:21046

以下是我解决该问题的方法:

  1. 删除项目中的库声明。
  2. 在图形布局中打开导致错误的布局(使用选择器的那个)。
  3. 清理项目(项目 -> 清理)。
  4. 关闭并重新打开eclipse。(此时布局应该正常)
  5. 您可以再次将项目设置为库。

希望这能有所帮助!(如果这个问题仍然存在...)


“Library declaration”是什么? - basickarl

1

我也遇到了同样的问题,在Eclipse->Problems中也没有出现问题。

你可以考虑在可绘制对象中添加默认状态(如Android Developers网站上的ImageButton示例所示),在你提供的代码的修改版本中展示:

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:state_pressed="true"
    android:drawable="@drawable/calender_h" />
<item
    android:state_pressed="false"
    android:drawable="@drawable/calender_n" />  
<item 
    android:drawable="@drawable/calender_n" />
</selector>

否则,我会说(从我刚刚在Eclipse中经历的事情来看),你应该将应用程序推送到手机或模拟器上。在Eclipse中,我正在查看一个“无法解析...”消息,在我的布局XML文件的图形布局选项卡中,我遇到了麻烦,但在我的手机上,我看到的图像完全符合预期(对按钮按下等操作做出了完美响应)。

0

你的XML没问题。你是否缺少drawables?尝试清理项目一次。如果这样做没有帮助,那么如果你从其他地方复制粘贴了XML,则可能存在一些不可见的特殊字符。

无论如何,请查看问题窗口。它应该会给你更多关于错误的详细信息。


0

我曾经遇到过同样的问题,原因是其中一个资源图片的名称。这张图片是由设计师发送给我的,其中包含一些Android不接受的字符,即使我在Eclipse中重命名了它,仍然有一些“邪恶”的东西留下来了。很奇怪。


0

我也遇到了这个问题。布局xml文件和main.xml无法解析。如果你选择main.xml的图形视图,你将得不到任何按钮(在我的情况下)。我发现Eclipse设置为C++而不是Java。将其设置为Java透视图,关闭,然后重新打开Eclipse即可解决问题。

现在Eclipse正在做其他奇怪的事情,比如间歇性地忘记连接手机。


0
在我的情况下,当我将可绘制项(PNG 文件)从 Linux 传输到我进行开发的 Windows 机器时,它们已经损坏了。通过尝试打开这些 PNG 文件,我发现这个问题。由于它们已经损坏,所以无法打开这些 PNG 文件。

再次传输后,一切正常运作。


0
  1. 无法解析 Android 的 XML 文件
  2. 检查您的可绘制对象是否存在于适当的路径中
  3. 检查是否存在不可见字符

4. 我也遇到了同样的问题。我发现每个 StateListDrawable 状态(按下、选定、聚焦等)实际上都需要一个有效的可绘制对象(png、jpg、gif 等)。这意味着,像这样的东西会导致解析错误问题:

<item android:state_selected="true" />


0

从Eclipse中,右键单击xml文件并选择“打开方式” -> XML编辑器。 在此中,选择设计选项卡。 您可能会注意到在您的<item>之后有一个神秘的空子元素。 右键单击它并选择删除即可。

刚刚花了大约一个小时尝试解决这个问题,并且这就是解决方法,可能是一些导致解析失败的不可见字符。 无论如何,希望这可以帮助其他遇到此问题的人!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接