Это же класс для двух разных продуктов - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть 2 вкуса продукта:

productFlavors {
    first{}
    second{}
}

и у меня есть класс Http с постоянным значением, как на экране:

enter image description here

Моя проблема:

Если я установил сборку first, я хочу Http класс с CODE = 2000
но если я установил сборку second, я хочу Http класс с CODE = 1000

Я видел такой проект, который выглядел так: репо (первый) и после изменения репозиторий сборки (второй) и класс http различались в зависимости от текущей сборки, но не могли реплицировать его: /

Ответы [ 2 ]

3 голосов
/ 30 апреля 2019

Если ваши классы одинаковы, но единственное отличие - это константа, вам не нужно дублировать код, и все, что вам нужно сделать, это создать константы gradle, к которым вы обращаетесь через класс BuildConfig:

productFlavors {
    flavor1 {
        buildConfigField 'int', 'CODE', '1000'
    }

    flavor2 {
        buildConfigField 'int', 'CODE', '2000'
    }
}

Тогда вы будете использовать

BuildConfig.CODE

в ваших HTTP-вызовах, которые будут содержать 1000 или 2000 в зависимости от вкуса.

0 голосов
/ 30 апреля 2019

Создайте две копии вашего Http класса, одну в src/first/com.androidapp.testproject/repo и другую в src/second/com.androidapp.testproject/repo, и удалите копию из src/main/....

Первая версия вашего класса в src/first/... будет создан для вашего аромата first, а тот, что в src/second/..., будет создан для вашего аромата second.Конечно, вы должны отрегулировать значение для CODE в соответствующей копии ваших классов.

См. Следующий ответ для получения дополнительной информации https://stackoverflow.com/a/16746755/3286819

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...