如何在Android Gradle中设置每个构建变量的packageNameSuffix?

如何在Android Gradle中设置每个构建变量的packageNameSuffix?,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我们的应用程序有免费版和付费版。我们还生产品牌版本,这意味着应用程序在两个维度上有所不同 四个版本可以是: 应用程序,Nike ed.free 应用程序,Nike ed.付费 应用程序阿迪达斯ed.付费 应用程序,阿迪达斯版。免费 我现在的解决方案是有两种构建类型,付费和免费: buildTypes { paid { packageNameSuffix ".paid" } free { pa

我们的应用程序有免费版和付费版。我们还生产品牌版本,这意味着应用程序在两个维度上有所不同

四个版本可以是:

  • 应用程序,Nike ed.free
  • 应用程序,Nike ed.付费
  • 应用程序阿迪达斯ed.付费
  • 应用程序,阿迪达斯版。免费
我现在的解决方案是有两种构建类型,付费和免费:

  buildTypes {
        paid {
            packageNameSuffix ".paid"
        }

        free {
            packageNameSuffix ".free"
        }
    }
和两种构建风格:

productFlavors{
    nike{
        packageName "com.example.theapp.nike"
    }

    adidas{
        packageName "com.example.theapp.adidas"
    }

}
出于leagacy的原因,我们的一个应用程序变体没有免费后缀,但仍将作为免费版本处理。我想要的是在builtTypes块中设置packageNameSuffix时能够掌握构建风格。在伪代码中,我想要如下内容:

 buildTypes {
        free {
            if( buildFlavor != "nike"){
                packageNameSuffix ".free"
            }
        }
    }

可能吗?

是的。这是可能的。您可以通过创建4个项目来使用此功能,每个项目都有一个包含单个类文件的包,该类文件显示它是App1/App2的免费/付费版本,以及一个包含所有4个应用程序内容的库项目。

是的,单个项目也可以。首先创建一个库项目,并通过导航到属性将其标记为库项目这是项目的一部分。然后创建另一个项目,右键单击该项目->属性->Android->向下滚动并单击添加->然后将显示库项目。选择该选项并运行最新的一个(不是库项目)