Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to control multiDex and minifying from product flavors?

I am using following flavors to improve debug builds for devices with Android 5 and above:

productFlavors {
    // Define separate dev and prod product flavors.
    dev {
      // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
      // to pre-dex each module and produce an APK that can be tested on
      // Android Lollipop without time consuming dex merging processes.
      minSdkVersion 21
    }
    prod {
      // The actual minSdkVersion for the application.
      minSdkVersion 16
    }
  }

However not all of my devices runs under api 21+, thus I want to control multiDex and minifying. E.g.:

  productFlavors {
    dev {
      minSdkVersion 21
      multiDexEnabled false
      minifyEnabled false
    }
    prod {
      minSdkVersion 16
      multiDexEnabled true
      minifyEnabled true
    }
  }

But that's gives me:

Error:(44, 0) Could not find method minifyEnabled() for arguments [false] on ProductFlavor_Decorated

How can I combine those properties together?

like image 484
Yarh Avatar asked Jan 26 '26 16:01

Yarh


1 Answers

minifyEnabled() propery available only in BuildType DSL object. While multiDexEnabled refers to ProductFlavor object. So if you want to combine these properties, you have to specify it in both of these objects. E.g.:

productFlavors {
    dev {
        minSdkVersion 21
        multiDexEnabled false
    }
    prod {
        minSdkVersion 16
        multiDexEnabled true
    }
}

buildTypes {
    debug {
        minifyEnabled false
    }
    release {
        minifyEnabled true
    }
}

For debug builds use devDebug build variant, for release - prodRelease.

like image 164
Maksim Ostrovidov Avatar answered Jan 28 '26 04:01

Maksim Ostrovidov



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!