Android覆盖文件的味道

Android覆盖文件的味道,android,Android,在我的android应用程序中,我有一个文件,我想为特定的口味覆盖它。 我的结构: 然而,当我构建funki风格时,我仍然看到使用了main中的Computer类。 在我的build.gradle中,我有: productFlavors { somename{ resValue "string", "app_name", "some name" } funki { resValue "string", "app_name", "Funki

在我的android应用程序中,我有一个文件,我想为特定的口味覆盖它。 我的结构:

然而,当我构建funki风格时,我仍然看到使用了main中的Computer类。 在我的build.gradle中,我有:

productFlavors {
    somename{
        resValue "string", "app_name", "some name"
    }
    funki {
        resValue "string", "app_name", "Funki App"
        applicationIdSuffix ".funki"

    } 
}
我看到的每一次构建都使用了main中的计算机文件。 所有其他覆盖(例如,res文件)都是基于我构建的风格覆盖的。 如何为特定的风格重写类?

您应该得到一个“复制类”构建错误-至少,这是以前的行为。不能在flavor中重写Java/Kotlin类


您可以做的是从
main
源代码集中删除Java/Kotlin类,并使其具有您所有的风格。因此,将
Computer.java
main
移动到
somename
,并将您的另一台
Computer.java
放在
funki
中,我最后检查了代码中的productflavor,如下所示:

if(BuildConfig.FLAVOR.equals("funki")){
根据if/else,我执行所需的代码