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 的发布扩展中,您将这些方法留空,而在调试版本中,您将编写一些代码。
完全不确定这是否可能。我已经在我的应用程序 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 的发布扩展中,您将这些方法留空,而在调试版本中,您将编写一些代码。