基于产品风味的包装选择

Tim*_*not 9 android gradle android-studio build.gradle

我使用打包选项来排除一些库.是否可以根据产品风味选择包装.例如 -

android {
    productFlavors {
        flavorDimensions 'models'
            S2 {
                flavorDimension 'models'
                minSdkVersion 22
                ....
            }
            S6 {
                flavorDimension 'models'
                minsdkversion 22
                ....
            }
        }


    packagingOptions {
        exclude 'lib/armeabi/libs2.so'
        exclude 'lib/arm64-v8a/libs6.so
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,在上面的代码中,我要排除只'lib/armeabi/libs2.so'在生成APK s6风味和要排除只'lib/arm64-v8a/libs6.so'在APK的产生s2香味

我们怎样才能做到这一点.

L.J*_*.J. 9

我遇到了同样的问题,然后,我开发了一个gradle插件来解决这个问题.你可以在这里检查它(android-soexcluder)

它非常易于使用:

soexcluder {
    s2 {
        exclude 'lib/arm64-v8a/libs6.so'
    }

    s6 {
        exclude 'lib/armeabi/libs2.so'
    }
}
Run Code Online (Sandbox Code Playgroud)

除此之外,存储库中甚至还有一个示例项目