Android 仅在带有gradle的调试模式下使用一组类和资源

Android 仅在带有gradle的调试模式下使用一组类和资源,android,android-studio,gradle,Android,Android Studio,Gradle,我只想在调试模式构建类型(Android studio/gradle)下添加特定功能。将一组类和资源限制为调试构建类型(gradle) 我当前的解决方案是使用debug目录存储额外的类和资源,并且在代码中,当BuildType.debug属性设置为true时,通过反射加载条目类。 如果我们在调试中构建,则在构建期间,调试目录将与主目录合并。首先,我认为这个目录将与构建变量目录一样工作,即:将覆盖具有相同名称的类(允许我拥有特定类的调试版本)。这似乎是不可能的(来自Android Studio的重

我只想在调试模式构建类型(Android studio/gradle)下添加特定功能。将一组类和资源限制为调试构建类型(gradle)

我当前的解决方案是使用debug目录存储额外的类和资源,并且在代码中,当BuildType.debug属性设置为true时,通过反射加载条目类。
如果我们在调试中构建,则在构建期间,调试目录将与主目录合并。首先,我认为这个目录将与构建变量目录一样工作,即:将覆盖具有相同名称的类(允许我拥有特定类的调试版本)。这似乎是不可能的(来自Android Studio的重复类错误)


这是最干净的解决方案吗?是否可以直接使用gradle来执行此操作?

如果我理解正确,您有一个调试目录。把不同的类放在那里。相同的类应该在发布目录中(创建此目录)。这些类不能在主目录中!主目录现在将是共享代码集。在调试构建中,它将从调试目录获取类,在发布模式中,它将从发布目录获取类。如果您需要添加发布目录的任何帮助,请告诉我。

为了在调试和发布生成类型中具有相同类的不同版本,您需要在与“调试”目录相同的级别创建“发布”目录。将该类放在相同的文件夹层次结构中,Android Studio将在您构建发布类型时拾取该类。
您的主目录树中不能有该类。

“我首先认为该目录的工作原理与构建变体目录相同,即:将覆盖具有相同名称的类(允许我拥有特定类的调试版本)”--这不适用于Android Studio的任何源集,该源集是否由构建类型、产品风格或特殊类型使用(例如,
androidTest
)。您不能覆盖在同一版本中使用的其他源集中定义的类,这些源集中包含
main
中的任何内容。