【问题标题】:Using multiple classes across android flavors跨 android 风格使用多个类
【发布时间】:2015-06-16 01:13:05
【问题描述】:

所以我有一个 android 基础项目,我想将其拆分为各种风格。分配单独的 xml 很容易,类也是如此。然而,当有从基类到风味类的调用时,问题就出现了。比如说我有:

package app.myapp.service

import app.flavor1.ClassB
import app.flavor2.ClassB
import app.flavor3.ClassB
import app.flavor4.ClassB

public class Class A
{
    Class B bar = new Class B;

    bar.foo();
}

因此,根据风味构建,我仍然想使用它的 B 类实现,但是我不能导入这两个类,因为每个特定风味都无法识别不在该项目结构中的导入。因此,在构建项目时,由于无法识别导入,它将引发错误。如果它只有两种口味,我可以做一个 buildconfig 来修复它,但是如果口味变成 2+,它就会成为一个问题。我将如何解决这个问题?或者换一种说法,我还能从我的基类中导入多种口味吗?谢谢

【问题讨论】:

    标签: java android gradle android-gradle-plugin android-productflavors


    【解决方案1】:

    我不知道这是否可能,但一个快速的建议是为 ClassB 创建一个接口,然后在各种风格中说实现,并在每种风格中都有一些代码来将实现设置为用过的。最简单的方法是使用依赖注入,例如,有:

    ClassA.setClassBImplementation(ClassBInterface obj);
    

    并且有一个可以在代码中使用的内部 ClassBInterface 变量。然后,您可以从每种风格的类中调用所述方法来设置正确的实现。

    【讨论】:

      猜你喜欢
      • 2020-05-08
      • 2015-05-15
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多