为每个构建变体使用不同的类

max*_*max 3 android android-studio build-variant

我有一个 Application 类,我希望在每个构建变体中都不同,例如调试和发布。
这是我的地图:

app/      
   |      
   |----debug/          
             |----java\            
                       |----com.example.App.class       
             |----res\
                      |----mipmap-hdpi       
   |----main/          
             |----java\      
                      |----com.example.App.class       
             |----res\
                      |----mipmap-hdpi            
Run Code Online (Sandbox Code Playgroud)

但在 android studio 中给我这个错误消息“在...中找到重复的类”,
但它在我的资源中没有显示任何错误。
我的问题是为什么 gradle 无法弄清楚应该在不同的构建变体中使用哪个类,但它可以决定在不同的构建变体中必须使用哪些资源。

laa*_*lto 6

下面的代码在main所有构建类型之间共享。因此,该课程出现两次,一次来自debug,一次来自main

要拥有特定于构建类型的源文件,请将它们放在特定于构建类型的文件夹下,而不是main. 例如,如果您有常用debugrelease构建类型,请将其他变体放在release.

为什么资源不需要这个是因为资源合并可以覆盖资源而不是构建类型。没有代码合并。