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

Доступны ли утверждения на Android?

Доступны ли утверждения на Android? У меня есть:

assert(null);

Он ничего не делает, и я в режиме отладки.

4b9b3361

Ответ 1

Да, они доступны.

Они по умолчанию отключены в эмуляторе. Вам нужно будет добавить параметры командной строки -shell -prop debug.assert=1 в дополнительные параметры командной строки эмулятора в конфигурации запуска, которую вы используете для запуска вашего приложения.

Assertions in eclipse

Другая вещь, о которой вы должны знать, это то, что ваше приложение, установленное на устройстве, не будет принимать во внимание утверждения - они будут игнорироваться.

Ответ 2

В настоящее время eclipse предлагает следующее:

Утверждения ненадежны. Вместо этого используйте условные проверки BuildConfig.DEBUG.

Проблема Объяснение:

Утверждения не проверяются во время выполнения. Есть способы запросить, чтобы они были использованы Dalvik (adb shell setprop debug.assert 1), но свойство игнорируется во многих местах и ​​на него нельзя положиться. Вместо этого выполните условную проверку внутри if (BuildConfig.DEBUG) {} блоков. Эта константа является статическим окончательным логическим значением, которое истинно в отладочных сборках и false в версиях сборки, а компилятор Java полностью удаляет весь код внутри if-body из приложения.

Например, вы можете заменить

assert speed > 0 

с

if (BuildConfig.DEBUG && !(speed > 0)) { throw new AssertionError(); }

(Примечание. Эта проверка на линт не означает, что утверждения, подтверждающие чистоту или ненулевое значение, не являются абсолютными, чаще всего предназначены для использования инструментов, чем проверки времени выполнения.)

Дополнительная информация: [Проблема 65183: Intellij/Studio не активирует утверждение при запуске кода Android в режиме отладки] OK

Ответ 3

вы можете просто использовать Android JUnit Assert:

Assert.assertTrue(false);