我正在使用 ADT for android 在 eclipse 中开发。
在我的应用程序中,我有一些常量可以帮助我轻松调试我的应用程序。
作为一个例子,我有:
public static final boolean DEBUG_TOAST_LOGS = true;
它帮助我在屏幕上烤一些日志。
每次我打算构建一个发行版时,我都必须检查我的常量并将它们的值设置为适合发行版的值,这在某种程度上是痛苦的。
现在我想要的是一种构建我的应用程序的方法,使用两种配置:一种用于调试模式,另一种用于发布模式。释放模式应该将我的常量设置为适当的值。我怎么不能这样做?你有什么建议?满足我需求的最佳方式是什么?
任何帮助,将不胜感激。
1971 次
2 回答
10
我不确定您是否使用Gradle作为构建系统。如果这样做,您可以设置特定于构建类型的资源,例如,布尔debug
值将true
用于调试构建类型,而 false 将用于发布构建类型。
构建.gradle
android {
defaultConfig {
...
resValue "bool", "debug", "true"
}
buildTypes {
release {
...
resValue "bool", "debug", "false"
}
}
...
}
应用程序.java
public class Application extends android.app.Application {
@Override
public void onCreate() {
super.onCreate();
if (getResources().getBoolean(R.bool.debug)) {
... // debug logic here
}
...
}
}
于 2015-02-28T11:03:50.873 回答
6
@hidro 的解决方案很好,但getResources()...
每次您想要访问该值时都需要进行不必要的调用。
还有另一种可能:
构建.gradle
android {
buildTypes {
debug {
buildConfigField "boolean", "DEBUG_TOAST_LOGS", "true"
}
release {
buildConfigField "boolean", "DEBUG_TOAST_LOGS", "false"
}
}
}
然后,在您的代码中,您可以编写:
if (BuildConfig.DEBUG_TOAST_LOGS) {
// ... enjoy your toasts ...
}
于 2016-10-24T14:34:36.840 回答