Android gradle项目可以合并库和xml资源

Android gradle项目可以合并库和xml资源,android,xml,gradle,merge,aar,Android,Xml,Gradle,Merge,Aar,首先,我动态生成一些android库,其中包含src/main/res/xml/config.xml中的xml文件,其中包含库特定的数据 接下来,当我构建android应用程序时,将生成的库作为依赖项,我希望生成的apk包含与所有libraries xml config文件合并的xml config文件,但它没有 插件Android清单合并到一个文件中,有什么方法可以让它对xml文件同样有效吗?这真的可能吗 每个插件都有一个配置文件,其中包含例如: <?xml version="1.0"

首先,我动态生成一些android库,其中包含src/main/res/xml/config.xml中的xml文件,其中包含库特定的数据

接下来,当我构建android应用程序时,将生成的库作为依赖项,我希望生成的apk包含与所有libraries xml config文件合并的xml config文件,但它没有

插件Android清单合并到一个文件中,有什么方法可以让它对xml文件同样有效吗?这真的可能吗

每个插件都有一个配置文件,其中包含例如:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<plugins>
    <feature name="Plugin1">
        <param name="package" value="com.example.Plugin1"/>
    </feature>
</plugins>

我希望apk包含xml配置文件,其中包含3个插件的内容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<plugins>
    <feature name="Plugin1">
        <param name="package" value="com.example.Plugin1"/>
    </feature>

    <feature name="Plugin2">
        <param name="package" value="com.example.Plugin2"/>
    </feature>

    <feature name="Plugin3">
        <param name="package" value="com.example.Plugin3"/>
    </feature>
</plugins>


谢谢

我认为你所建议的方式是不可能的。另一个值得探索的方法是创建XML文件作为资产,并使用唯一的名称(例如
资产/plugin-(plugin name).XML

这有两个属性,可以在编译时和运行时实现这一点:

  • 由于文件名是唯一的,您的资产目录中最终会有一组不会被覆盖的文件(按照您的示例,可能是
    资产/plugin-Plugin1.xml
    资产/plugin-Plugin2.xml
    资产/plugin-Plugin3.xml
  • 由于它们位于assets目录中,因此它们是

这样,您就可以获得与运行时所需的效果类似的效果。唯一值得一提的是在您创建的每个插件中包含一个合适的Proguard规则文件,如果您缩小APK,因为我知道您的插件将在运行时通过反射进行实例化。

我认为这不可能像您建议的那样。另一个值得探索的方法是创建XML文件作为资产,并使用唯一的名称(例如
资产/plugin-(plugin name).XML

这有两个属性,可以在编译时和运行时实现这一点:

  • 由于文件名是唯一的,您的资产目录中最终会有一组不会被覆盖的文件(按照您的示例,可能是
    资产/plugin-Plugin1.xml
    资产/plugin-Plugin2.xml
    资产/plugin-Plugin3.xml
  • 由于它们位于assets目录中,因此它们是

这样,您就可以获得与运行时所需的效果类似的效果。唯一值得一提的是在您创建的每个插件中包括一个合适的Proguard规则文件,如果您缩小APK,因为我知道您的插件将在运行时通过反射实例化。

我认为这不会起作用,您正在尝试的方式(即通用XML文件)。你能分享一个config.xml的例子吗?是的,我编辑了这个问题,我认为这不管用,就像你尝试的那样(即通用xml文件)。你能分享一个config.xml的例子吗?是的,我编辑了这个问题谢谢你的提示,我会一直这样做,直到找到更好的方法。谢谢,不客气。如果你找到更好的方法,请添加一个答案。谢谢你的提示,我会一直这样做,直到找到更好的方法。谢谢,不客气。如果您找到更好的方法,请添加一个答案。