Как создавать пакеты в Android Studio для разных вариантов градации

Я новичок в программировании для Android. Я только что выпустил свое приложение. Все хорошо работает и все. Однако я думал о создании новой вкусовой (бесплатной) версии приложения, используя функцию вкуса в gradle.

Теперь все учебники и примеры вкусов, которые я вижу, рассказывают о хранении эксклюзивных классов разных вкусов отдельно, например

com.example.myapp.free

com.example.myapp.paid

и держите общие файлы в main. Теперь моя проблема заключается в том, что, поскольку я уже выпустил приложение, я не могу изменить имя пакета своего приложения на имя .paid, как указано выше. Однако моя бесплатная версия будет реализовывать тот же класс с другой логикой. Если я сделаю это, я получу ошибку duplicate class:com...

Как мне обойти эту ситуацию?


person Gaurav Pandey    schedule 29.06.2015    source источник
comment
см. эту ссылку stackoverflow.com/questions/26636282/   -  person N J    schedule 29.06.2015
comment
Спасибо за ссылку, но это не решает мою проблему. У них уже есть отдельные вкусы. Мое платное приложение уже выпущено, и я спрашиваю, как избежать дублирования без изменения имен пакетов.   -  person Gaurav Pandey    schedule 30.06.2015


Ответы (1)


Наконец получил решение:

определил конфигурацию gradle следующим образом:

    productFlavors {
    free {
        applicationId "com.blah.blah.free"
    }
    paid {
        applicationId "com.blah.blah"
    }

Это позволило мне сохранить пакет выпуска прежним, и в то же время я научился трудному способу правильного проектирования и модуляризации приложения. Мне пришлось сделать копии моих классов активности в обоих вариантах и ​​удалить из основного. Переопределение ресурсов автоматически обрабатывает все, кроме классов.

person Gaurav Pandey    schedule 29.06.2015