有效的XML文件在Android ADT中提供“无法解析”错误

时间:2011-10-11 05:22:24

标签: android xml xml-parsing selector adt

我制作了一个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

可能是什么问题?

8 个答案:

答案 0 :(得分:3)

我不确定它是一样的,但是 在图书馆项目中更新到ADT 15时,我遇到了类似的问题。 这是目前仍在开放的Google问题:21046

这对我有用:

  1. 删除项目的库声明。
  2. 以图形布局打开导致错误的布局(使用选择器的布局)。
  3. 清理项目(项目 - &gt;清洁)
  4. 关闭并重新开启日食。 (现在布局应该没问题)
  5. 您可以再次将项目设置为库。
  6. 希望这有帮助! (如果它仍然相关......)

答案 1 :(得分:1)

我也有同样的问题,Eclipse中也没有问题 - >问题对我来说。

您可以考虑为drawable添加默认状态(如Android开发者网站上此ImageButton example中所述),如您所呈现代码的此修改版本所示:

<?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文件的“图形布局”选项卡中盯着“无法解析...”消息我遇到了麻烦,但是在我的手机上,我看到的图像与它应该完全一样(响应)完美按钮按下等等。

答案 2 :(得分:0)

你的XML很好。你错过了drawables吗?尝试清理一次项目。如果这没有帮助,如果你从某个地方复制粘贴,那么XML中可能会有一些不可见的特殊字符。

无论如何,请查看问题窗口。它应该为您提供有关错误的更多详细信息。

答案 3 :(得分:0)

在Eclipse中,右键单击xml文件,然后选择Open With - &gt; XML编辑器。在此,选择“设计”选项卡。您可能会注意到<item>之后有一个神秘的子元素,它只是空的。右键单击它并选择删除。

只花了一个小时左右试图解决这个问题,结果证明这是一个修复,可能是一些导致解析失败的隐形字符。无论如何,希望能帮助其他人解决这个问题!

答案 4 :(得分:0)

  1. Failed to parse XML file for android
  2. 检查您的drawable是否存在于适当的路径
  3. 检查不可见的字符
  4. 4。 我也遇到了同样的问题。我发现每个StateListDrawable状态(按下,选择,聚焦等)实际上都需要一个有效的drawable(png,jpg,gif等)。所以,这意味着,这样的事情会导致解析错误问题:

    <item android:state_selected="true" />

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

我有同样的问题,这是由于其中一个资源图片的名称。图像是由一位设计师发送给我的,该设计师介绍了Android不接受的一些字符,甚至当我在Eclipse中重命名它时,还有一些东西&#34; evil&#34;显然仍然存在奇怪的。

答案 7 :(得分:0)

在我的情况下,drawables(PNG文件)在从Linux机器转移到我开发的Windows机器时被破坏了。我想通过尝试打开PNG文件。这些PNG文件因为已损坏而无法打开。

再次转移之后,它运作良好。