带有口味和包装名称的 Douts
Douts with flavors and packages names
我的应用程序中有两个 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
和公共 class 中都有不同的 class 实现。
现在假设我必须执行 class:
MyClass
class 对每种口味都有不同的实现,所以我在绿色和红色 Flavor
内部实现 class
在绿色 MyClass
上创建 MyClass
之后,我遇到了这个错误
在 class 本身。
package name com.company.MyClass does not correspond to the file path
我也试过
package com.company.green.MyClass
但是我得到相同的包名错误
所以我的问题是:
每个 Flavor
的正确包名是什么?
文件 MyClass.java
应位于 2 个位置:
<project>/<module>/src/green/java/com/company/MyClass.java
<project>/<module>/src/red/java/com/company/MyClass.java
应该有package com.company
,
所以 applicationId
中设置的 flavor 不会影响 类.
的包名称和位置
然后您可以在项目的任何地方执行 import com.company.MyClass
并且将采用 MyClass
的适当版本。
有关详细信息,请查看此 gist。
我的应用程序中有两个 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
和公共 class 中都有不同的 class 实现。
现在假设我必须执行 class:
MyClass
class 对每种口味都有不同的实现,所以我在绿色和红色 Flavor
在绿色 MyClass
上创建 MyClass
之后,我遇到了这个错误
在 class 本身。
package name com.company.MyClass does not correspond to the file path
我也试过
package com.company.green.MyClass
但是我得到相同的包名错误
所以我的问题是:
每个 Flavor
的正确包名是什么?
文件 MyClass.java
应位于 2 个位置:
<project>/<module>/src/green/java/com/company/MyClass.java
<project>/<module>/src/red/java/com/company/MyClass.java
应该有package com.company
,
所以 applicationId
中设置的 flavor 不会影响 类.
然后您可以在项目的任何地方执行 import com.company.MyClass
并且将采用 MyClass
的适当版本。
有关详细信息,请查看此 gist。