如何将库资源添加到Cordova项目?

Ray*_*Xie 6 resources android namespaces cordova

当编写一些cordova插件,来自某些SDK,资源文件的源/头文件,iOS库和Android Jar都可以添加到Cordova插件中.

当使用google-play-services.jar时,库项目包含一些资源文件,如果添加了资源,将在app命名空间中生成R.java,而不是SDK命名空间.

有一些变通方法来添加库项目(包括JAR和资源)为创建科尔多瓦项目,但如果建立像英特尔XDK或PhoneGap的构建云服务应用科尔多瓦这种解决方法不能使用.

是否可以添加SDK资源并在SDK命名空间中生成R.java?如果有,怎么样?

Ray*_*Xie 12

遗憾的是,这些问题尚未得到解答.

好消息是,经过几周的挣扎,我碰巧从另一个项目中学到了解决方案:https://github.com/MobileChromeApps/google-play-services

Cordova plugin.xml中添加了一项新功能,以支持将android子项目添加到Cordova项目中.以下是上述项目的示例,

<framework src="libs/google-play-services_lib" custom="true" />
Run Code Online (Sandbox Code Playgroud)

对于iOS,它非常相似,添加如下框架:

<framework src="src/ios/MobFox.framework" custom="true"/>
Run Code Online (Sandbox Code Playgroud)

然后cordova CLI将知道如何将整个文件夹添加到Cordova项目,并将子项目添加到eclipse项目,并将框架添加到Xcode项目文件中.

但是,要注意!!

尽管cordova CLI支持这一新功能,但英特尔XDK尚不支持它!在撰写本文时(2014年11月15日),它仍然使用cordova v3.3.

结果是:

如果您编写插件,并使用插件"com.google.playservices"作为依赖项,

  • 使用cordova CLI时,您可以毫无问题地构建插件.
  • 如果使用Intel XDK,则无法加载插件.

那么,如何为英特尔XDK修复它?

答案是:在plugin.xml中指定依赖项的确切版本号,如下所示:

<dependency id="com.google.playservices@19.0.0"/>
Run Code Online (Sandbox Code Playgroud)

希望以上信息对遇到同样问题的人有用.

干杯.