如何保留两种风格的Java文件并将其排除在我的应用程序中的其他文件中?

时间:2017-10-24 09:50:06

标签: android gradle android-flavors

我有一个Android应用程序,比方说有三种风格。第一个叫做free。第二种口味叫做paid。第三种味道称为b2bClient

freepro需要一个库(让它成为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")
            }
        }
    }

}

这也没用。同样的错误。是否可以从特定风味的主要源集中排除一个类?

1 个答案:

答案 0 :(得分:0)

创建一个名为analytics的库模块,其中包含GoogleAnalyticsHelper的代码。现在添加此analytics库仅用于需要analytics行为的风格。

关注this link仅包含特定风味的库。