Android Studio 选择性编译

Android Studio selectivily compile

完全不确定这是否可能。我已经在我的应用程序 gradle 中的某个库中添加了一个 debugCompile,现在当我在 release 中编译我的代码时,当然会出现编译错误。问题是,如果我正在发布,是否有一种方法可以在不使用 flavors 的情况下不编译/包含特定行的代码?

如果您不想使用 flavors,您可以做的一件事是将使用一些特定于调试的库的代码放入 if 子句中,如下所示:

if (BuildConfig.DEBUG) {
    // do your debug-specific actions here
}

在发布版本中,此 if 子句及其内部代码将被编译器视为未使用而丢弃。但是,您仍然会遇到编译时错误,指出有一些代码使用了未定义的库。解决方案是在发布版本中也包含 gradle compile 指令:

compile 'com.foo:bar:1.2.3'

第二件事是使用一些第三方 java-preprocessors,比如 this one.

选择权在你,但我更愿意保留口味。您总是可以编写一些抽象 class,其中包含 2-3 个使用特定于调试的库的方法。在此 class 的发布扩展中,您将这些方法留空,而在调试版本中,您将编写一些代码。