我正在尝试使用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>
答案 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,因为它实际上并未引用架构。