2015-09-18 5 views
1

Я нашел это link, но у меня есть сомнения. У меня есть некоторые сомнения в отношении вкусов продукта в студии android. У меня есть структура что-то вроде этого:Продукт вкусов, как использовать пользовательский класс

приложение> ЦСИ> главная> Java> обыкн> моякомп> продукт> пакеты (вид/Utils/и т.д.)

 > app2 > java > com > mycompany > product > packages(view/ utils/ etc) 

     > app3 > java > com > mycompany > product > packages(view/ utils/ etc) 
  1. Как я могу использовать class в пакете main, но с изменениями фрагментов кода для конкретной сборки? Я знаю, что есть возможность использовать buildConfigField с флагом для использования if и использовать фрагменты кода в классе, но я думаю, что это плохо, и мне было интересно, можете ли вы использовать тот же класс или другие средства для использования этих фрагментов кода. Я попытался создать ту же структуру пакета и создать персональную копию класса, но Android Studio жалуется на двойной класс, что не происходит с файлами res.

  2. Как создать apks в debug и одновременно release для каждой сборки.

  3. Как проводить одновременные тесты для каждой сборки.

+2

Это действительно 3 или 4 вопроса в одной. Вы должны действительно рассмотреть возможность ограничения сферы вашего вопроса только одним из них. –

ответ

1

Скажем, у вас есть main и 2 аромата 'free' и 'paid'

1) либо есть файл MyFile.java в ИПВ/основной, а затем он идет в обоих вкусов

Или у вас есть src/free/MyFile.java и src/paid/MyFile.java тогда файлы будут отличаться в зависимости от вкуса

Или у вас есть src/free/MyFile.java and нет такого файла в src/paid затем MyFile.java будет использоваться только «свободный» привкусом

(Edited: последний случай будет компилировать только если MyFile.java не имеет отношения к чему в src/main)

2) Использование gradlew assembleDebug генерировать все ароматы для сборки отладки или gradlew assembleFreeDebug или gradlew assemblePaidDebug для создания только бесплатного или платного аромата. То же самое для выпуска.

3) То же, 2) Я не помню имена целей

Android Студия имеет «Build Variants» окно, в котором вы можете позаботиться о 2) и 3)

+1

«Или у вас есть src/free/MyFile.java и нет такого файла в src/paid, тогда MyFile.java будет использоваться только« свободным »вкусом», который в большинстве случаев не будет скомпилирован. Если 'main' code ссылается на' MyFile', в каждом вкусе должен существовать 'MyFile'. – CommonsWare

+0

Ах, действительно! В моем коде это было сказано только от самого аромата. –

+0

Первоначально проект был разработан в основном. И этот класс X настроил бы его на вкус А. При попытке реорганизовать класс X, чтобы ароматизировать аромат A и B, Android Studio обвиняет ошибку, не обнаруживая ссылку класса X в других классах в основной. –

Смежные вопросы