Android:如何根据gradle中的包名选择不同的res文件夹

时间:2016-03-11 07:20:52

标签: android gradle android-resources

我正在开发Android应用程序,它基于UI和一些代码功能类似于另一个应用程序,以便重用代码我已经创建了一个Appcommon,它将具有应用程序的公共代码(java和res)。我在app gradle中添加了这个appcommon。 (动机:通过使代码通用,很容易通过单一工作在两个应用程序中修复错误)

现在我已经在appcommon中将res文件夹分区如下,并且该应用程序也都有他们的res文件夹。

res
|
 --res_common
 --res_app1
 --res_app2

现在,当我为appcommon制作gradle时,我想根据用户正在构建的应用程序添加检查以选择相应的res文件夹。有人可以告诉我们如何实现这个目标吗?

更多详情: 我有两个应用程序 - > app1 2. app2

我有另一个app appcommon这不是一个独立的应用程序,但它包含应用程序中的公共文件,它也有它的gradle文件。 所以app1的seeting.gradle文件是这样的:

include ':app1', ':GatherLibBrowser'

include ':appcommon'
project(':appcommon').projectDir = new File(settingsDir, '../../libs/appcommon')

现在app常见有两个应用程序(app1和app2)的res,所以在它的gradle中它需要检测要构建的应用程序,以便它可以为该应用程序选择相应的res文件夹(它可以是app1或app2)。 如果有任何混淆,请告诉我。

1 个答案:

答案 0 :(得分:1)

您可以在Build.gradle上编写路径:

android 
{

//...............
 sourceSets
 {
       main
       {
           //here choose your paths
           res.srcDirs =
            [
                   'src/main/res/layout',
                   'src/main/res/layout/splash',
                   'src/main/res/layout-xlarge-land',
                   'src/main/res/layout-xlarge-land/splash',
                    'src/main/res'
            ]

                 //...............
       }//end main

  }//end sourceSets

}//end Android