Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加Cordova插件时合并文件_Java_Android_Cordova_Plugins - Fatal编程技术网

Java 添加Cordova插件时合并文件

Java 添加Cordova插件时合并文件,java,android,cordova,plugins,Java,Android,Cordova,Plugins,我为Cordova项目开发了android插件,但遇到了一个问题:合并文件。特别是资源文件。大多数插件都有相同的资源文件,比如strings.xml,我想合并它们。我在谷歌搜索了好几天,没有找到答案 我应该在插件的plugin.xml中写什么?源文件标签只是添加文件。Config file标记允许我在文件中添加一些行,但是如果我有很多行,这会让人不舒服。有没有合并文件的命令?我遇到了与您相同的问题,没有找到使用plugman合并资源的方法(可能这在过去几年中已经改变了) 我做的是,我制作了一个插

我为Cordova项目开发了android插件,但遇到了一个问题:合并文件。特别是资源文件。大多数插件都有相同的资源文件,比如strings.xml,我想合并它们。我在谷歌搜索了好几天,没有找到答案


我应该在插件的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

我希望,它们将在未来添加合并功能。这似乎是对值进行小规模一次性处理的好方法,但实际上并没有涵盖更复杂的布局和样式。