Создание разных приложений с использованием Flavors - другой код. - PullRequest
0 голосов
/ 23 октября 2018

Я создаю приложение с несколькими разными вкусами.Мой вопрос заключается в том, что если я использую другой код для действий, основанных на флейворе, нужно ли мне включать копию этого кода во все директоры флейвора или я просто оставляю копию кода в каталоге app / src / main / javaБудут ли все остальные варианты использовать файл в main / java, если я не включу его в каталоги вариантов.

У меня есть

app / src / main / java / com / mycompany / CodeA.java

и

app / src / flav1 / java /ru / mycompany / CodeA.java

и папка без специальных исходных наборов для flavor2, будет ли flavor2 использовать файл кода в app / src / main / java / com / mycompany / CodeA.java?Или мне нужно создать папку с исходными наборами с копией кода в каждом варианте?Я использую разные папки ресурсов для пары вариантов, но для всех остальных вариантов папка ресурсов по умолчанию соответствует файлам в каталогах app / src / main.

1 Ответ

0 голосов
/ 23 октября 2018

Примечание. Для данного варианта сборки Gradle выдает ошибку сборки, если обнаруживает два или более каталогов исходного набора, которые определили один и тот же класс Java.Например, при создании отладочного APK вы не можете определить и src / debug / Utility.java, и src / main / Utility.java.Это связано с тем, что Gradle просматривает оба этих каталога во время процесса сборки и выдает ошибку «дублирующий класс».Если вам нужны разные версии Utility.java для разных типов сборки, вы можете настроить каждый тип сборки на определение своей версии файла и не включать ее в основной / исходный набор.- цитата из https://developer.android.com/studio/build/build-variants. Это именно то, что вы спрашиваете.Так что ответ - он не скомпилируется, вы должны определить файл кода в обоих вариантах, а не в main.

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