Проверьте, является ли текущая сборка отладкой на Android - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть проект 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 ?

...