Подтвердить что ты не робот

Что такое "Условные проверки BuildConfig.DEBUG"?

Android Lint жалуется на использование assert() и рекомендует вместо этого использовать условные проверки BuildConfig.DEBUG.

Я прекрасно понял, почему утверждение небезопасно использовать для android, но что такое "условные проверки BuildConfig.DEBUG"?

Как будет изменен следующий примерный код?

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

Ответ 1

Я думаю, что какой-нибудь подтекст пытается сказать, что добавьте проверку BuildConfig.DEBUG для утверждения assert

if (BuildConfig.DEBUG)

assert (ctx instanceof FragmentActivity);Забастовкa >

так что assert работает только при тестировании приложения, но в версиях версий assert не будет называться

BuildConfig.DEBUG будет false при экспорте сборки релиза.

Изменить:  Похоже, вы должны сделать что-то вроде ниже, а не использовать assert

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

вместо assert.

источник: http://tools.android.com/recent/androidstudio045released

Некоторые новые проверки lint и, в частности, флажок использует ключевое слово assertion. Это не работает надежно на устройствах, и вы должны использовать BuildConfig.DEBUG вместо условных проверок.