我有两个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


我是否必须手动注释掉这些行或取消注释?还有其他方法吗?

谢谢。

最佳答案

假设MainActivitymain中,则可以:


BLEUtil中也有一个dev类,具有相同的API,可能实现为无操作;要么
有两种MainActivity实现,一种在dev中,一种在ble中,其中只有ble中的一种使用BLEUtil,并且可能在main中具有一些具有通用功能的通用基类;要么
MainActivity继承FlavoredActivity,在FlavoredActivitydev中都有ble的实现,其中BLEUtil使用


可能还有其他方法。

10-08 17:25