Создание разных приложений с использованием Flavors - другой код.
Я создаю приложение с несколькими разными вкусами. Мой вопрос заключается в том, что если я использую другой код для действий, основанных на флейворе, нужно ли мне включать копию этого кода во все директории флейвора, или если я просто оставляю копию кода в каталоге app / src / main / java Будут ли все остальные варианты использовать файл в main / java, если я не включу его в каталоги вариантов.
я имею
приложение / SRC / главная / Java / COM / MyCompany/CodeA.java
а также
приложение / SRC /flavor1/ Java / COM / MyCompany/CodeA.java
и нет никакой специальной папки с исходными наборами для flavor2, будет ли flavour2 использовать файл кода в app/src/main/java/com/mycompany/CodeA.java? Или мне нужно создать папку с исходными наборами с копией кода в каждом варианте? Я использую разные папки ресурсов для пары вариантов, но для всех остальных вариантов папка ресурсов по умолчанию соответствует файлам в каталогах app / src / main.
1 ответ
Примечание. Для данного варианта сборки Gradle выдает ошибку сборки, если встречает два или более каталогов исходного набора, которые определили один и тот же класс Java. Например, при создании отладочного APK вы не можете определить и src/debug/Utility.java, и src / main / Utility.java. Это связано с тем, что Gradle просматривает оба этих каталога во время процесса сборки и выдает ошибку "дублирующийся класс". Если вам нужны разные версии Utility.java для разных типов сборки, вы можете настроить каждый тип сборки на определение своей версии файла и не включать ее в основной / исходный набор. - цитата из https://developer.android.com/studio/build/build-variants. Это именно то, что вы спрашиваете. Так что ответ - он не скомпилируется, вы должны определить файл кода в обоих вариантах, а не в основном.