我的应用上有两个Flavors
,所以我的项目有这样的结构:
productFlavors {
green {
resValue "string", "app_name", "green"
minSdkVersion 14
applicationId 'com.company.green'
targetSdkVersion 22
versionCode 3
versionName '3.0.3'
}
red {
resValue "string", "app_name", "red"
minSdkVersion 14
applicationId 'com.company.red'
targetSdkVersion 22
versionCode 3
versionName '3.0.3'
}
}
此外,我在主程序包中的每个Flavor
和公共类中都有不同的类实现
现在我们说我必须实现这个类:
MyClass的
该类对每种风格都有不同的实现,所以我在绿色和红色Flavor
在绿色MyClass
上创建Flavor
后,我遇到了此错误
在课堂上。
包名com.company.MyClass与文件路径
不对应
我也试过
package com.company.green.MyClass
但是我得到了相同的包名错误
所以我的问题是:
每个Flavor
的包名是什么?
答案 0 :(得分:0)
文件MyClass.java
应位于以下两个位置:
<project>/<module>/src/green/java/com/company/MyClass.java
<project>/<module>/src/red/java/com/company/MyClass.java
并且应该有package com.company
,
所以applicationId
设置的风格不会影响包的名称和类的位置。
然后,您可以在项目中的任何位置import com.company.MyClass
进行MyClass
的适当版本。
有关详细信息,请查看此gist。