2017-03-02 46 views
2

我该如何去混淆只有一种味道。混淆只有一种味道

不幸的是,flavor 2依赖于使用类的一些重复的模块(jar),并且由于它的设置方式,我无法对其进行混淆。 (第三方)所以希望跳过混淆的味道。

我似乎无法在flavor部分中定义minifyENabled false,或将味道添加到构建部分。

注意,总共有6种口味。欲望是挑选应该混淆

buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    productFlavors { 
     flavour1{ 
      applicationId "uk.co.company.flavour1" 
     } 
     flavour2{ 
      applicationId "uk.co.company.flavour2" 
     } 
    } 

回答

2

只要味道,因为在ProductFlavor DSL对象minifyEnabled不存在,那么你必须创建另一个buildType,例如releaseMinified以及标准release

buildTypes { 
    release { 
     minifyEnabled false 
    } 
    releaseMinified { 
     minifyEnabled true 
    } 
} 

productFlavors { 
    minifiableFlavor{} 
    nonMinifiableFlavor{} 
} 

而且能够只为需要的香味这个版本类型:

android.variantFilter { variant -> 
    if (variant.buildType.name.equals('releaseMinified') && !variant.getFlavors().get(0).name.equals('nonMinifiableFlavor')) { 
     variant.setIgnore(true); 
    } else if (variant.buildType.name.equals('release') && variant.getFlavors().get(0).name.equals('nonMinifiableFlavor')){ 
     variant.setIgnore(true); 
    } 
} 

然后你就会结了:

Build types

+0

一个极好的主意。会试试看。谢谢 :) – Doomsknight