为每个构建变体使用不同的 class
Use a different class for each build variant
我有一个应用程序 class,我希望它在每个构建变体(如调试和发布)中都不同。
这是我的地图:
app/
|
|----debug/
|----java\
|----com.example.App.class
|----res\
|----mipmap-hdpi
|----main/
|----java\
|----com.example.App.class
|----res\
|----mipmap-hdpi
但是在 android studio 给我这个错误信息 "duplicate class found in ..."
但它在我的资源中没有显示任何错误。
我的问题是为什么 gradle 无法弄清楚 class 应该在不同的构建变体中使用什么,但它可以决定在不同的构建变体中必须使用什么资源。
main
下的代码在所有构建类型之间共享。因此 class 出现了两次,一次来自 debug
一次来自 main
.
要获得构建类型特定的源文件,请将它们放在构建类型特定的文件夹下,而不是 main
。例如,如果您有通常的 debug
和 release
构建类型,请将另一个变体放在 release
.
下
为什么资源不需要这个是因为 resource merging 可以覆盖构建类型上的资源。没有代码合并。
我有一个应用程序 class,我希望它在每个构建变体(如调试和发布)中都不同。
这是我的地图:
app/
|
|----debug/
|----java\
|----com.example.App.class
|----res\
|----mipmap-hdpi
|----main/
|----java\
|----com.example.App.class
|----res\
|----mipmap-hdpi
但是在 android studio 给我这个错误信息 "duplicate class found in ..."
但它在我的资源中没有显示任何错误。
我的问题是为什么 gradle 无法弄清楚 class 应该在不同的构建变体中使用什么,但它可以决定在不同的构建变体中必须使用什么资源。
main
下的代码在所有构建类型之间共享。因此 class 出现了两次,一次来自 debug
一次来自 main
.
要获得构建类型特定的源文件,请将它们放在构建类型特定的文件夹下,而不是 main
。例如,如果您有通常的 debug
和 release
构建类型,请将另一个变体放在 release
.
为什么资源不需要这个是因为 resource merging 可以覆盖构建类型上的资源。没有代码合并。