Создание разных приложений с использованием Flavors — другой код.

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

У меня есть

приложение/src/main/java/com/mycompany/CodeA.java

и

приложение/src/flavor1/java/com/mycompany/CodeA.java

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


person Kristy Welsh    schedule 23.10.2018    source источник


Ответы (1)


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

person Hanna    schedule 23.10.2018