У меня есть проект, структурированный следующим образом:
project/
|
|---src/
|---flavorA2/
| |
| |---java/
| | |---com.abc.flavorA.mk2
| | |-----classA.java
| | |-----classB.java
| |---res/
| |---AndroidManifest.xml
|
|---main
| |---java/
| | |---com.abc.flavorA
| | |-----classA.java
| | |-----classB.java
| | |-----classC.java
| | |-----classD.java
| |---res/
| | |---drawable/
| | |---layout/
| | |---values/
| |
| |---AndroidManifest.xml
|
|---flavorA
flavorA будет полностью использовать источник и активы из main, а flavorA2 имеет небольшие изменения в classA и classB, а имя пакета также будет изменено на com.abc.flavorA.mk2.
У меня был файл build.gradle следующим образом:
...
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
flavorA2 {
packageName "com.abc.flavorA.mk2"
versionCode 2
versionName "1.0.1"
}
flavorA {
packageName "com.abc.flavorA"
}
}
...
Я запускаю код, выбирая вариант сборки flavorA2. Однако результаты работы показывают, что gradle по-прежнему выбирают классы (classA и classB) из main вместо использования измененной версии внутри flavorA2.
Я что-то пропустил?