4

我有一个应用程序类,我希望在每个构建变体(如调试和发布)中有所不同。
这是我的地图:

app/      
   |      
   |----debug/          
             |----java\            
                       |----com.example.App.class       
             |----res\
                      |----mipmap-hdpi       
   |----main/          
             |----java\      
                      |----com.example.App.class       
             |----res\
                      |----mipmap-hdpi            

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

4

1 回答 1

7

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

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

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

于 2018-02-03T09:22:13.183 回答