1

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

当我为风味 A 构建项目时,我还希望在构建风味 B 时具有名为a_my_layout.xmlb_my_layout.xml的布局。然后从源代码中我将动态获取资源 IDgetResources().getIdentifier("a_my_layout", "layout"...)

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

4

1 回答 1

1

老实说,我不明白你为什么要重命名它们,如果你动态加载资源并不重要,如果你有两种风格的布局,当你加载它们时,它会加载一个特定于你的味道,但这是你的选择:)。

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

像这样的东西(在应用程序级别的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 项目时运行。

于 2016-06-23T10:14:03.640 回答