什么是" BuildConfig.DEBUG条件检查"?

时间:2014-04-16 15:14:45

标签: android

Android Lint抱怨正在使用assert(),并建议使用 BuildConfig.DEBUG条件检查

我完全理解为什么断言在Android上使用不安全,但完全是什么“BuildConfig.DEBUG条件检查”?

如何修改以下示例代码?

Context ctx = getContext();
assert (ctx instanceof FragmentActivity);
fragment_manager = ((FragmentActivity) ctx).getSupportFragmentManager();

1 个答案:

答案 0 :(得分:27)

我认为lint试图说的是为assert语句添加BuildConfig.DEBUG检查

if(BuildConfig.DEBUG)

断言(ctx instanceof FragmentActivity);

这样断言只有在你测试应用程序时才有效,但是在发布版本中断言不会被调用

导出发布版本时,

BuildConfig.DEBUG将为false。

编辑:  看起来你应该做类似下面的事情,而不是使用断言

 if(BuildConfig.DEBUG && !(ctx instanceof FragmentActivity))
      throw new RuntimeException();

而不是断言。

来源:http://tools.android.com/recent/androidstudio045released

一些新的lint检查,特别是一个标记assertion关键字使用的检查。这在设备上无法可靠地运行,您应该使用BuildConfig.DEBUG来进行条件检查。