13

我的应用程序中有两个构建变体,一个是标准应用程序版本,第二个是自定义应用程序。

productFlavors {
        customConfig {
            minSdkVersion 14
            applicationId 'es.com.custom'
            targetSdkVersion 22
            versionCode 3
            versionName '3.0.0'
        }
        standard {
            minSdkVersion 14
            applicationId 'es.com.standard'
            targetSdkVersion 22
            versionCode 3
            versionName '3.0.0'
        }

对于定制,我必须实现新功能,但只是为了定制,所以这些新功能在标准版本上将不可用。我不确定我必须做什么。

1.- 两个类,一个具有标准要求,一个具有自定义要求
2.- 在标准类中执行以下操作:

  if (getPackageName()==customConfig )
    // do the custom things
    else
    //do the standard things
4

3 回答 3

10

构建变体是 Gradle 使用一组特定规则来组合构建类型和产品风格中配置的设置、代码和资源的结果。尽管您不直接配置构建变体,但您确实配置了构建类型和形成它们的产品风格。

 if(BuildConfig.Flavor.equals("customConfig")) 
    {

    }
  else
   {

   }

阅读构建多种风格的 Android

于 2017-05-04T08:48:09.330 回答
3

您必须为每种风味创建源目录。因此,您将能够为特定风味维护一个单独的文件。

请通过对您有帮助的链接

于 2017-05-04T08:50:32.780 回答
0

您可以通过一种简单的方式做到这一点。您的项目中现在应该有一个名为“ standard ”的文件夹。只需在“标准”文件夹所在的同一文件夹中创建另一个名为“ customConfig ”的文件夹(或者它可能已在 gradle 同步后创建) 。

在您的“ customConfig ”中创建另一个名为“res”的文件夹(同样,您可能已经拥有它)。然后创建另一个文件夹“值”。在“值”文件夹中,您可以创建值文件。将文件命名为“ values.xml ”并返回到您的项目。你的“ values.xml ”文件应该是这样的:

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <string name="custom_app_id">es.com.custom</string>s
</resources>

现在在您的代码中,您可以检查您所在的变量环境:

 if (getPackageName().equals(getString(R.string.custom_app_id)))// for custom
// do the custom things
else
//do the standard things

希望这有帮助!

于 2017-05-04T08:58:19.957 回答