Cordova默认config.xml URI未注册

时间:2015-07-28 21:38:02

标签: android cordova android-studio phonegap-plugins

我正在尝试使用Cordova构建一个Android应用程序。但是,在我创建项目后,添加了平台android,并将其导入Android Studio。我遇到了config.xml的一些问题。我没有改变任何东西,但我仍然得到这个错误。

它表示没有为xmlns注册URI:cdv。

整个xml文件是这样的:

<?xml version='1.0' encoding='utf-8'?>
<widget id="xxx.xxx.xxx" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <preference name="loglevel" value="DEBUG" />
    <feature name="Whitelist">
        <param name="android-package" value="org.apache.cordova.whitelist.WhitelistPlugin" />
        <param name="onload" value="true" />
    </feature>
    <allow-intent href="market:*" />
    <name>xxxx</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="dev@cordova.apache.org" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="view/index.html" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <feature name="SplashScreen">
        <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
        <param name="onload" value="true" />
    </feature>
    <platform name="android">
        <icon src="res/drawable-ldpi/icon.png" density="ldpi" />
        <icon src="res/android-mdpi/icon.png" density="mdpi" />
        <icon src="res/android-hdpi/icon.png" density="hdpi" />
        <icon src="res/android-xhdpi/icon.png" density="xhdpi" />
    </platform>
</widget>

2 个答案:

答案 0 :(得分:0)

我只是忽略了这个错误。它似乎没有任何不良影响。该应用仍然可以正在运行。

答案 1 :(得分:0)

解决方案:

添加两个文件:

  • http://www.w3.org/ns/widgets
  • http://cordova.apache.org/ns/1.0

访问您的忽略的架构和DTD

File > Settings > Languages & Frameworks > Schemas and DTDs > Ignored Schemas and DTDs

TL; DR:

Android Studio错误地 假定这些XML命名空间用于验证您的xml(不是),因此它希望您register the URI。这是不必要的,因为这些XML Namespace声明不引用任何内容,也不验证任何内容-它们仅以任意和唯一的名称存在。

在我研究这个问题时,这对我来说是个艰难的概念,因此为清楚起见,我将直接引述W3C Recommendation

  

为了达到其预期目的,名称空间名称应具有   独特性和持久性的特征。这不是目标   它可直接用于检索架构(如果有)。

因此,解决方案是忽略URI,因为它实际上并未引用架构。