2015-05-25 49 views
2

调试模式下使用一组类和资源的我只想添加特定的功能,当我在调试模式下生成类型(Android的工作室/ gradle这个)。为了限制一组类和资源调试构建类型(gradle)。只有在gradle这个

我目前的解决方案是使用调试目录存储在代码中的多余的类和资源,通过反射当BuildType.DEBUG属性设置为true来加载入门级。 如果我们在调试中构建,debug目录在构建期间与主目录合并。我首先想到这个目录和构建变体的目录一样,也就是说:将使用相同的名称覆盖类(允许我拥有特定类的调试版本)。这似乎是不可能的(从Android Studio重复类错误)。

它是最干净的解决方案吗?是否有可能直接使用gradle来做到这一点?

+0

“我首先想到,这个目录将工作一样构建变量的,即:将覆盖具有相同名称的类(允许我有一类特殊的调试版本)” - 不为任何工作sourceset与Android Studio,无论该源代码集是由构建类型,产品风格还是特殊构件(例如'androidTest')使用。你不能重写在同一个构建中使用的其他源代码集中定义的类,这将包括'main'中的任何东西。 – CommonsWare

回答

4

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

4

为了有不同的版本,在您的调试同一类和发布版本,你需要在同一水平作为你的“调试”目录下创建一个“释放”目录类型。将该类放在相同的文件夹层次结构中,Android Studio将在构建发布类型时将其选中。 您的主目录树中不能有该类。

+0

它的工作原理!谢谢 –