提问者:小点点

如何保持两种口味的Java文件,并在我的应用程序中排除其他口味?


我有一个Android应用程序,比如说,有三种口味。第一个称为free。第二种风格称为付费。第三种风格称为b2bClient

freepro需要一个库(让它成为Google Analytics),并且,为了避免代码重复,Helper类GoogleAnalyticsHelper围绕对Google Analytics的调用在主源代码集中。但是b2bClient不使用库。为了减小b2bClientAPK的大小,我不将库包含在Gradle中的依赖项中。当我运行assembleB2bClient时,它会导致编译错误,这是显而易见的(构建系统没有来自com.google.android.gms.analytics的类。

当flavor为b2bClient时,我尝试从源代码集中排除GoogleAnalyticsHelper,如下所示:

sourceSets {

    main {
        android.productFlavors.all { flavor ->
            if (flavor.name == "b2bClient") {
                java.exclude("**/GoogleAnalyticsHelper.java")
            }
        }
    }

}

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


共1个答案

匿名用户

创建一个库模块,比如Analytics,其中包含GoogleAnalyticsHelper的代码。现在添加此Analytics库,仅用于需要Analytics行为的味道。

按照此链接仅包含特定风味的库。