В Java канале мы писали о том, как работает assert в JVM. Но в Андроиде используется виртуальная машина Dalvik или ART, в зависимости от версии ОС, а не стандартная JVM.

По-умолчанию assert в андроид-приложении не работает.

В Dalvik ассерты включаются командой adb shell setprop debug.assert 1, но эта настройка ненадежна и не работает на некоторых версиях Андроид. В ART ассерты и вовсе убрали.

Если использовать assert, то линтер в Android Studio покажет warning и предложит заменить на конструкцию:


if (BuildConfig.DEBUG && !(&jt;assert_condition>)) { throw new AssertionError() }