android - 如何使用gradle为味道配置不同的buildType

标签 android gradle

我有两种不同的口味, RQT PRD
对于其中之一,我想禁用proguard配置(对于 RQT ,对和 buildTypes均禁用proguard)。
喜欢加调理吗?这样的事情可能吗?

android {
  ...
  flavorDimensions("server")
  productFlavors {
    rqt {
      dimension "server"
      applicationIdSuffix ".rqt"
    }
    prd {
      dimension "server"
      applicationIdSuffix ".prd"
    }
  }
  ...
  buildTypes {
    debug {
      (__if (flavor != RQT) then do proguard config...__)
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      proguardFile 'proguard-debug-project.txt'
    }
    release {
      (__if (flavor != RQT) then do proguard config...__)
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      proguardFile 'proguard-release-project.txt'
    }
  }
  ...
}

最佳答案

您可以创建其他构建类型,例如debugNoProguardreleaseNoProguard等。

android {
  variantFilter { variant ->
    def needed = variant.name in [
      'rqtDebugNoProguard',
      'rqtReleaseNoProguard',       
      'prdDebug',       
      'prdRelease'
    ]

    variant.setIgnore(!needed)
  }

  buildTypes {
    debug {
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      proguardFile 'proguard-debug-project.txt'
    }

    debugNoProguard {
      debuggable true
      minifyEnabled false
      signingConfig signingConfigs.debug
    }
    ....
  }
}

然后,当您想在没有ProGuard的情况下运行调试版本时,可以构建变体rqtDebugrqtDebugNoProguard,而不是构建prdDebugNoProguard

关于android - 如何使用gradle为味道配置不同的buildType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55833198/

相关文章:

gradle - 在 Gradle 中添加对生成的源集的运行时依赖项

gradle - 如何使用 c 插件在 gradle 中构建 emcc

android - 在后台运行安卓手电筒

Android 致命异常 : Can't create handler inside thread that has not called Looper. prepare()

java - 使用 FragmentPagerAdapter 从主 Activity 调用 Fragment 方法

android - 分配后在 `ViewDataBinding` 单元测试中获取 Activity `Robolectric` 字段

android - 如何在Android中设置壁纸

java - 查找未使用的 gradle 运行时依赖项

android-studio - Android Studio 与 Gradle 中的差异构建项目

java - Eclipse 在错误的目录中创建 JUnit 测试