【发布时间】:2017-02-16 23:29:07
【问题描述】:
我正在尝试使用 Groovy 从 android 清单中读取 xml(特别是来自 import groovy.xml.XmlUtil 的 XmlSlurper),而我正在从 Gradle 获取以下内容。
错误:与元素类型“activity”关联的属性“android:name”的前缀“android”未绑定。
导致该错误的代码如下:
def innerNodeTemplate = '''
<activity android:name=".activity.MyActivity"></activity>
'''
def activityNode = new XmlSlurper().parseText(innerNodeTemplate)
我尝试过如下声明命名空间(from this existing answer)
activityNode = new XmlSlurper(false,false).parseText(innerNodeTemplate).declareNamespace(android:'android')
但随后我得到了针对同一命名空间问题的更明确的异常
错误:原因:org.xml.sax.SAXParseException;行号:2;列号:53;与元素类型“activity”关联的属性“android:name”的前缀“android”未绑定。
还有什么我可以尝试的吗?
【问题讨论】:
-
您的 xml 中不存在这样的命名空间。为什么要在解析时添加?
-
嗨 Rao,“android:name”在我的 xml 中。我是否需要在 xml sn-p 的开头添加类似 xmlnx:android="" 的声明?
标签: android xml gradle groovy android-gradle-plugin