У меня есть проект, структурированный следующим образом:
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
.
Я что-то пропустил?