当编写一些cordova插件,来自某些SDK,资源文件的源/头文件,iOS库和
Android Jar都可以添加到Cordova插件中.
当使用google-play-services.jar时,库项目包含一些资源文件,如果添加了资源,将在app命名空间中生成R.java,而不是SDK命名空间.
有一些解决方法可以将库项目(包括jar和资源)添加到创建的Cordova项目中,但是如果在像Intel XDK或PhoneGap Build这样的云服务中构建Cordova应用程序,则无法使用此类解决方法.
解决方法
遗憾的是,这些问题尚未得到解答.
好消息是,经过几周的挣扎,我碰巧从另一个项目中学到了解决方案: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.
结果是:
如果您编写插件,并使用插件“com.google.playservices”作为依赖项,
>使用cordova CLI时,可以毫无问题地构建插件.
>如果使用Intel XDK,则无法加载插件.
那么,如何为英特尔XDK修复它?
答案是:在plugin.xml中指定依赖项的确切版本号,如下所示:
<dependency id="com.google.playservices@19.0.0"/>
希望以上信息对遇到同样问题的人有用.
干杯.