我有两个productFlavors
productFlavors {
dev {
...
}
ble {
...
}
}
现在,我为
ble
创建了一个不同的源集,在其中添加了一些额外的Java类。所以我现在有两组目录:
app/src/main/java/...
app/src/ble/java/...
在
ble
集中,我有一个名为BLEUtil.java
的Java类。app/src/ble/java/.../BLEUtil.java
我想从我的
BLEUtil.java
调用MainActivity
中的方法BLEUtil.startScan();
将build变量设置为
bleDebug
时,它会很好用,因为存在BLEUtil.java
。但是,当我将构建变体更改为
devDebug
时,BLEUtil.java
不存在,因此BLEUtil.startScan()
会引发错误,并且我无法构建该应用程序。error: cannot find symbol class BLEUtil
我是否必须手动注释掉这些行或取消注释?还有其他方法吗?
谢谢。
最佳答案
假设MainActivity
在main
中,则可以:
在BLEUtil
中也有一个dev
类,具有相同的API,可能实现为无操作;要么
有两种MainActivity
实现,一种在dev
中,一种在ble
中,其中只有ble
中的一种使用BLEUtil
,并且可能在main
中具有一些具有通用功能的通用基类;要么
从MainActivity
继承FlavoredActivity
,在FlavoredActivity
和dev
中都有ble
的实现,其中BLEUtil
使用
可能还有其他方法。