Java 添加Cordova插件时合并文件
我为Cordova项目开发了android插件,但遇到了一个问题:合并文件。特别是资源文件。大多数插件都有相同的资源文件,比如strings.xml,我想合并它们。我在谷歌搜索了好几天,没有找到答案Java 添加Cordova插件时合并文件,java,android,cordova,plugins,Java,Android,Cordova,Plugins,我为Cordova项目开发了android插件,但遇到了一个问题:合并文件。特别是资源文件。大多数插件都有相同的资源文件,比如strings.xml,我想合并它们。我在谷歌搜索了好几天,没有找到答案 我应该在插件的plugin.xml中写什么?源文件标签只是添加文件。Config file标记允许我在文件中添加一些行,但是如果我有很多行,这会让人不舒服。有没有合并文件的命令?我遇到了与您相同的问题,没有找到使用plugman合并资源的方法(可能这在过去几年中已经改变了) 我做的是,我制作了一个插
我应该在插件的plugin.xml中写什么?源文件标签只是添加文件。Config file标记允许我在文件中添加一些行,但是如果我有很多行,这会让人不舒服。有没有合并文件的命令?我遇到了与您相同的问题,没有找到使用plugman合并资源的方法(可能这在过去几年中已经改变了) 我做的是,我制作了一个插件,包含所有常用文件,基本内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
</resources>
然后在我需要设置资源的每个插件中,我使用plugin.xml中的plugman语法:
<config-file target="res/values/ids.xml" parent="/resources">
<item type="id" name="id1"/>
<item type="id" name="id2"/>
<item type="id" name="id3"/>
</config-file>
<config-file target="res/values/strings.xml" parent="/resources">
<string name="message1">Hello</string>
<string name="message2">world!</string>
</config-file>
你好
世界!
最后,在你的插件中,你可以在“基本资源”插件上设置属性
这个系统的限制是,如果你想发布你的插件,而人们在使用它的同时,其他插件也会像你一样覆盖相同的资源文件
我当时已经发帖了,没有收到回复。
我想我们可以直接向他们的jira上的plugman人员询问这个问题。我也遇到了这个问题。另一种可能性,尽管对于您控制的插件(下载源代码,而不是使用PhoneGap Builder)来说肯定是一种解决办法,但就是将资源值添加到values文件夹中从未使用过的版本修饰符中。看 Android允许基于Android版本的修改器,任何资源文件夹都可以使用这些修改器。例如,通过“欺骗”并将字符串放入
res/values-v1
,可以在一个单独的文件夹中存放strings.xml,而不会覆盖其他插件的值。任何使用Android v1或更高版本的Android设备(蜂巢是v13,Kitkat是v19,棒棒糖5.0是21,5.1是22,等等)
你必须为每个插件使用不同的版本号,但是在使用姜饼(v9)之前有很多版本,所以除非你是超级插件,否则这个解决方法可以在短期内解决问题
如果Android像我想的那样使用它的修饰符,你的插件的值将自动获得优先权,因为该值比默认值文件夹“更具体”,最接近的匹配vN文件夹获得最多优先权
但是,如果我弄错了,您的将不会获得首选项,因此您需要调试/发现命名冲突,并相应地调整您的命名冲突。这里有点晚了
您只需创建
您的\u plugin\u strings.xml
,然后使用target dir
将其添加到您的values文件夹中。然后,这些值可以像在strings.xml中一样使用,就像“@string/your\u plugin\u hello\u message
”我希望,它们将在未来添加合并功能。这似乎是对值进行小规模一次性处理的好方法,但实际上并没有涵盖更复杂的布局和样式。