У меня есть проект Android с несколькими модулями, и в настоящее время я редактирую свой модуль "commons", в котором находится BaseActivity для проекта. Я хочу выяснить, является ли сборка сборкой DEBUG, что, теоретически, вы можете сделать несколькими способами.
Я попытался сделать это, используя BuildConfig.DEBUG
, который должен возвращаться, если сборка отлаживаемая или не. Если вы нажмете CTRL + клик на go к источнику этого, он будет указывать на:
public static final boolean DEBUG = Boolean.parseBoolean("true");
Как ни странно, это на самом деле возвращает false (?). И да, это BuildConfig из правильного пакета, мой пакет общих ресурсов (даже если это не так, как это возможно, что Boolean.parseBoolean ("true") оценивается как true , но каким-то образом значение переменная DEBUG - false ?)
Итак, я сказал, хорошо, давайте попробуем сделать это так:
private val isDebuggable: Boolean
isDebuggable = BuildConfig.BUILD_TYPE.equals("debug")
Это также происходит, если я проверяю это с помощью double равно:
BuildConfig.BUILD_TYPE == "debug"
Примечательно, что если вы поместите точку останова во вторую строку и оцените значение выражения BuildConfig.BUILD_TYPE.equals("debug")
, оно будет оценено как true , но isDebuggable
установлено на false ! Кто-нибудь может увидеть, что здесь происходит? Как это вообще возможно?
Я даже пытался объявить логическую переменную в build.gradle (commons), которая имеет значение true для отладочных сборок и false для сборок релизов, и это тоже не работает!
Есть что-то очевидное, что я скучаю или как? Как переменной можно присвоить логическое значение true и при этом оставаться равным false ?