继承产品风味

我有3种产品口味,不包括main口味:

productFlavors {
    xxx {
        applicationId 'com.xxx'
    }
    yyy {
        applicationId 'com.yyy'
    }
    zzz {
        applicationId 'com.zzz'
    }
}

据我了解,这些产品口味继承了main的资源,它看起来像这样:

        +------->xxx
        |           
main----+------->yyy
        |           
        +------->zzz

所以当我构建xxx ,Gradle捆绑了src/mainsrc/xxx文件夹中的东西。

现在,我需要它看起来像这样:

        +------->xxx           
        |                      
main----+------->yyy------->zzz

换句话说,我希望zzz能够使用yyy的资源以及main的资源。 Gradle能做到这一点吗?


这可能取决于你想要在zzz中“覆盖”什么。 在我的项目中,我也需要productFlavor继承。 但我只需要覆盖清单。 我使用定制的AndroidManifest.xml为zzz创建了目录,并在build.gradle中将其他zzz src路径更改为yyy:

sourceSets {
    zzz.java.srcDirs = ['src/yyy/java']
    zzz.res.srcDirs = ['src/yyy/res']
    ...
    ...
}

productFlavors {
   xxx {}
   yyy {}
   zzz {}
}

PS为此https://code.google.com/p/android/issues/detail?id=183350创建了一项功能请求


我在另一个线程中回答了这个问题。 我会在这里复制并粘贴我的答案,希望这对您有所帮助。

我一直在寻找类似的东西,发现了多种口味的变体。 我有一个应该有版本A和B的应用程序,每个版本都有开发环境和专业环境,所以我在我的gradle中结束了这个:

flavorDimensions 'app', 'environment'

productFlavors {
    versionA {
        flavorDimension 'app'
    }
    versionB {
        flavorDimension 'app'
    }
    pre {
        flavorDimension 'environment'
    }
    pro {
        flavorDimension 'environment'
    }
}

而在我的构建变种,我有versionAPreDebug,versionAPreRelease,版本BPreDebug,版本BPreRelease等。我认为你需要的是类似的东西。


这是一个重复产品的味道是另一个孩子

我在那里的回答可能有帮助。

链接地址: http://www.djcxy.com/p/27793.html

上一篇: inherit product flavor

下一篇: Blank App (XAML) Equivalent in Visual Studio Community 2015