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

时间:2014-09-30 13:05:04

标签: android cordova namespaces resources

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

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

有一些解决方法可以将库项目(包括jar和资源)添加到创建的Cordova项目中,但是如果在英特尔XDK或PhoneGap Build等云服务中构建Cordova应用程序,则无法使用此类解决方法。

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

1 个答案:

答案 0 :(得分:12)

遗憾的是,问题尚未得到解答。

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

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

<framework src="libs/google-play-services_lib" custom="true" />

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

<framework src="src/ios/MobFox.framework" custom="true"/>

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

但是,请注意!!

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

结果是:

如果您编写插件,并使用插件&#34; com.google.playservices&#34;作为依赖,

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

然后,如何为英特尔XDK修复它?

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

<dependency id="com.google.playservices@19.0.0"/>

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

干杯。