Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中的产品配置_Android_Android Gradle Plugin_Android Productflavors - Fatal编程技术网

Android中的产品配置

Android中的产品配置,android,android-gradle-plugin,android-productflavors,Android,Android Gradle Plugin,Android Productflavors,我对产品的口味是完全陌生的,我已经通过许多链接来理解它。但仍有一些疑问尚不清楚。我有3种产品风格,即:qa、dev和prod。我只创建了这三种产品风格,因为我需要更改不同风格的URL和一些API键,我通过创建3个不同的软件包并将相同的Java文件(URL文件位于app/src目录中)来完成。这就是我的身材,格雷德尔。我需要在每种口味中添加哪些强制性的东西?与以下内容相关的内容:proguard、signingConfigs: 产品风格的工作方式是,每个维度中的风格数乘以构建类型数,在您的情况下,

我对产品的口味是完全陌生的,我已经通过许多链接来理解它。但仍有一些疑问尚不清楚。我有3种产品风格,即:qa、dev和prod。我只创建了这三种产品风格,因为我需要更改不同风格的URL和一些API键,我通过创建3个不同的软件包并将相同的Java文件(URL文件位于app/src目录中)来完成。这就是我的身材,格雷德尔。我需要在每种口味中添加哪些强制性的东西?与以下内容相关的内容:proguard、signingConfigs:


产品风格的工作方式是,每个维度中的风格数乘以构建类型数,在您的情况下,单个维度中有3种风格,2种构建类型,最终得到3x2=6种构建变体,如下所示:

qaDebug qaRelease 产品调试 产品发布 德夫德布格 德夫雷莱斯 每个组合都是相关产品风格配置和相关构建类型配置的实际组合。对于变量qaDebug来说,它的配置来自qa下定义的和debug下定义的。因此,如果debug已经定义了proguard文件,那么通常不需要在qa中定义它,除非qa需要为自己的代码配置额外的proguard,那么这是一个需要决定的不同问题,因此proguard应该针对每种风格定义,而不是在构建类型中定义

我想指出的另一个方面是signingConfig,这里为prod和release定义了相同的值。这意味着以prod开头或以Release结尾的任何组合都将具有signingConfig集,在本例中为:QALESE、prodDebug、PRODRESLEASE和devRelease


因此,配置实际上取决于您的选择和设计,并非所有项目都具有相同的配置。

您没有说明您的问题,您的问题非常模糊。强制性可能是非常主观的,取决于很多方面。我只是试图产生3种产品口味。我是否需要为这些口味单独定义proguard规则文件?或者,在gradle的每种产品口味中,我都缺少什么可以补充的吗@这是不推荐使用的代码。你应该使用像okhttp或更好的libs,我想是的,我几年前就用过它了,它很适合简单的使用。但如果你能习惯于改型,那么如果你想改进的话,这将是清洁代码的一个良好开端。一旦你习惯了,它就会震动cf:如果你使用截击,我不认为ApacheLib是相关的没有问题,但我从我们的链接得到404谢谢你。我消除了疑虑。所以我甚至不需要在我的产品风格中加入signingConfig。因为默认情况下,release buildType拥有它。
android {
    useLibrary 'org.apache.http.legacy'
    compileSdkVersion 26
    buildToolsVersion '26.0.2'
    flavorDimensions "default"

    defaultConfig {
        applicationId "com.sagar.demo"
        minSdkVersion 21
        targetSdkVersion 25
        multiDexEnabled true
        versionCode 67
        versionName "1.0.0" //Update Version build number
        vectorDrawables.useSupportLibrary = true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            cmake {
                cppFlags ""
            }
        }
    }

    signingConfigs {

        release {
            storeFile file("myKeystore")
            storePassword "Keystore2017"
            keyAlias "SagarSuri"
            keyPassword "Keystore2020"
        }
    }

    buildTypes {
        debug {
            debuggable true
            minifyEnabled false  // shrink
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        release {
            debuggable false
            minifyEnabled true
            useProguard true
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }


    productFlavors {

        qa {
            dimension "default"

        }
        prod {
            dimension "default"
            signingConfig signingConfigs.release
        }
        dev {
            dimension "default"

        }
    }
}