我有一个Android应用程序,比方说有三种风格。第一个叫做free
。第二种口味叫做paid
。第三种味道称为b2bClient
。
free
和pro
需要一个库(让它成为Google Analytics),并且为了避免代码重复,围绕Google Analytics调用的帮助程序类GoogleAnalyticsHelper
位于主要来源集。但b2bClient
不使用该库。要减小b2bClient
APK的大小,我不会将库包含在Gradle中的依赖项中。当我运行assembleB2bClient
时,它会导致编译错误,这很明显(构建系统没有来自com.google.android.gms.analytics
的类。
我试图在源代码集中排除GoogleAnalyticsHelper
,而风格为b2bClient
,如下所示:
sourceSets {
main {
android.productFlavors.all { flavor ->
if (flavor.name == "b2bClient") {
java.exclude("**/GoogleAnalyticsHelper.java")
}
}
}
}
这也没用。同样的错误。是否可以从特定风味的主要源集中排除一个类?
答案 0 :(得分:0)
创建一个名为analytics
的库模块,其中包含GoogleAnalyticsHelper
的代码。现在添加此analytics
库仅用于需要analytics
行为的风格。
关注this link仅包含特定风味的库。