使用Gradle编译期间重命名布局文件

时间:2016-06-23 09:43:14

标签: android gradle android-gradle android-resources gradle-task

我的Android Studio项目有两种产品风格 - A B 。两者都在其资源文件夹中有一个名为 my_layout.xml 的布局。

我还希望在构建风味B时,为风味A构建项目,使其具有名为 a_my_layout.xml b_my_layout.xml 的布局。 然后从源代码我将使用node_modules/

动态获取资源ID

当我在编辑器(Android工作室)工作时,我希望布局的名称保留my_layout.xml,即我不想在res /文件夹中为我的布局添加一堆前缀。这可能与Gradle有关吗?

1 个答案:

答案 0 :(得分:1)

说实话,我不知道为什么要重命名它们,如果你动态加载资源没关系,如果你有两种版本的布局,加载它们时,它将加载特定于你的味道的那个,但它是你的选择:)。

如果您真的想要重命名它们,我认为您可以通过创建重命名脚本并将其与预定义的预建任务链接来实现此目的。

像这样的东西(在app level gradle中):

task renameLayoutsForVariants {
   // Do the renaming here with the prefixes
}

task renameFilesBack {
  // Rename files back to the initial name
}

afterEvaluate {
     android.applicationVariants.all { variant ->
         variant.javaCompiler.dependsOn(renameLayouts)
}

renameFilesBack.dependsOn build, deploy

要从gradle访问资源文件,SO上有大量帖子,你只需要检查它。

总之,它可能是100%,你只需要调整一些gradle脚本并将它们链接到一些已经定义的任务,这些任务在你构建/运行一个android项目时运行。