Как сохранить файл Java для двух вариантов и исключить его для других в моем приложении?

У меня есть приложение для Android, скажем, с тремя вкусами. Первый называется free, Второй аромат называется paid, И третий аромат называется b2bClient,

free а также pro нужна библиотека (пусть это будет Google Analytics), и, чтобы избежать дублирования кода, вспомогательный класс GoogleAnalyticsHelper окружающие звонки в Google Analytics находятся в основном наборе источников. Но 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 ответ

Создайте модуль библиотеки скажем analytics который содержит код GoogleAnalyticsHelper, Теперь добавьте это analytics библиотека только для аромата требует analytics поведение.

Перейдите по этой ссылке, чтобы включить библиотеку только для определенного аромата.

Другие вопросы по тегам