我有一个项目,结构如下:
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
and 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
and classB
) from main
而不是使用内部更改后的版本flavorA2
.
我在这里错过了什么吗?
由于您的类位于两个不同的包下,因此它们是完全不同的类。所以这些类不会互相替换。
对于风格,您无法覆盖类文件。因此,实现您想要的目的的一种方法是将这些类移出main
,并进入flavorA
.
所以你会得到这样的东西:
project/
|
|---src/
|---flavorA2/
| |
| |---java/
| | |---com.abc
| | |-----classA.java
| | |-----classB.java
| |---res/
| |---AndroidManifest.xml
|
|---main/
| |---java/
| | |---com.abc.flavorA
| | |-----classC.java
| | |-----classD.java
| |---res/
| | |---drawable/
| | |---layout/
| | |---values/
| |
| |---AndroidManifest.xml
|
|---flavorA/
| |---java/
| | |---com.abc
| | |-----classA.java
| | |-----classB.java
这样,每当您选择一种口味时,只有 ClassA 和 ClassB 的一个版本可见。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)