从ADT 17开始,你可以在gen文件夹中找到一个带有DEBUG常量的BuildConfig类。我经常在代码中使用此常量,因为ADT在导出应用程序时会自动更改值。
然而,对于Proguard,这不再适用了。例如。我有以下片段:
if (!BuildConfig.DEBUG) {
ACRA.init(this);
}
Proguard注意到,DEBUG是真的,所以它完全删除了这个片段并缩小了应用程序。在ADT改变DEBUG之后,这已经太晚了。
我知道的唯一解决方案是创建自己的DEBUG常量并再次手动更改它。但我真的很喜欢ADT的功能。你知道更好的解决方案吗?
提前致谢。
修改
有一种解决方法。创建自己的DEBUG常量,该常量在运行时初始化:
debug = (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE));
我在Application类的onCreate方法的第一个创建这个变量。这是一种可行的解决方法,但它不是解决问题的方法。