Android 如何为发布/调试版本提供不同的gradle.properties文件?

Android 如何为发布/调试版本提供不同的gradle.properties文件?,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我们需要使用不同配置的gradle.properties文件来发布和调试版本,因为我们使用的一些特性是实验性的,它们破坏了一些东西。可能吗 我们的gradle.properties文件示例 org.gradle.daemon=true org.gradle.jvmargs=-Xmx1500m -XX:MaxPermSize=512m org.gradle.parallel=true kotlin.incremental=true android.enableD8=true 根据官方文件: 您可

我们需要使用不同配置的
gradle.properties
文件来发布和调试版本,因为我们使用的一些特性是实验性的,它们破坏了一些东西。可能吗

我们的
gradle.properties
文件示例

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx1500m -XX:MaxPermSize=512m
org.gradle.parallel=true
kotlin.incremental=true
android.enableD8=true

根据官方文件:

您可以在android块内的模块级build.gradle文件中创建和配置构建类型。创建新模块时,Android Studio会自动为您创建调试和发布构建类型。尽管调试生成类型没有出现在生成配置文件中,但Android Studio使用可调试的true对其进行配置。这允许您在安全的Android设备上调试应用程序,并使用通用调试密钥库配置APK签名

如果要添加或更改某些设置,可以将调试生成类型添加到配置中。以下示例为调试生成类型指定applicationIdSuffix,并配置使用调试生成类型中的设置初始化的“暂存”生成类型

您可以将相同的build.gradle用于发布和调试模式,如:

buildTypes {
        release {
// Do whatever you want to do in release mode
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        debug {
// Do whatever you want to do in debug mode
            applicationIdSuffix ".debug"
            debuggable true
        }

        /**
         * The `initWith` property allows you to copy configurations from other build types,
         * then configure just the settings you want to change. This one copies the debug build
         * type, and then changes the manifest placeholder and application ID.
         */
        staging {
            initWith debug
            manifestPlaceholders = [hostName:"internal.example.com"]
            applicationIdSuffix ".debugStaging"
        }
    }
参考:


您使用了不同的构建变体,如上文所述,并在Android Studio上选择构建变体选项(通常位于左下角)。选择要构建apk并运行应用程序的变体。

我应该如何放置这些选项:
org.gradle.daemon=true org.gradle.jvmargs=-Xmx1500m-XX:MaxPermSize=512m org.gradle.parallel=true kotlin.incremental=true android.enableD8=true
来自gradle属性?您想在调试或发布模式下使用它的地方?我想使用在调试模式下,您还可以在gradle.properties文件中设置系统属性。如果此类文件中的属性名称具有前缀“systemProp.”,如“systemProp.propName”,则该属性及其值将设置为系统属性,而不带前缀。在多项目生成中,将忽略除根项目外的任何项目中设置的“systemProp.”属性。也就是说,只有根项目的gradle.properties文件将检查以“systemProp.”前缀开头的属性。参考:我明白了,所以除了命令行中的systemProp之外,没有办法将它分离出来进行调试/发布?这应该可以工作,但不太容易维护。
buildTypes {
    release {
        shrinkResources true
        minifyEnabled true
        debuggable false
        signingConfig signingConfigs.releaseConfig
    }
    debug1 {
        debuggable true
        signingConfig signingConfigs.debug
    }
    debug2 {
        debuggable true
        signingConfig signingConfigs.debug
    }
}