混淆了一种味道

时间:2017-03-02 11:18:12

标签: android proguard android-productflavors

我怎么会混淆一种风味。

不幸的是,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"
        }
   }

1 个答案:

答案 0 :(得分: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