Detectar si estoy en modo de liberación o depuración en android

¿Cómo puedo detectar que estoy en el modo Release o Debug en android?

5 Solutions collect form web for “Detectar si estoy en modo de liberación o depuración en android”

La solución más simple y mejor a largo plazo es utilizar BuildConfig.DEBUG . Este es un valor boolean que será true para una compilación de depuración, false caso contrario:

 if (BuildConfig.DEBUG) { // do something for a debug build } 

Ha habido informes de que este valor no es 100% confiable de las compilaciones basadas en Eclipse, aunque personalmente no he encontrado un problema, así que no puedo decir cuánto de un problema realmente es.

Si está utilizando Android Studio, o si está utilizando Gradle desde la línea de comandos, puede agregar sus propias cosas a BuildConfig o ajustar de otra manera los tipos de compilación de debug y release para ayudar a distinguir estas situaciones en tiempo de ejecución.

La solución del Argumento Ilegal se basa en el valor del flag android:debuggable en el manifiesto. Si es así como desea distinguir una compilación "debug" de una compilación "release", entonces por definición, esa es la mejor solución. Sin embargo, tenga en cuenta que en el futuro, la bandera de debuggable es realmente un concepto independiente de lo que Gradle / Android Studio considera una compilación de "depuración" para ser. Cualquier tipo de compilación puede optar por establecer el indicador debuggable a cualquier valor que tenga sentido para ese desarrollador y para ese tipo de compilación.

Pruebe lo siguiente:

 boolean isDebuggable = ( 0 != ( getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE ) ); 

Se toma del poste de los bundells de aquí

Sí, no tendrá problemas para usar:

 if (BuildConfig.DEBUG) { //It's not a release version. } 

A menos que esté importando la clase BuildConfig incorrecta. Asegúrese de que está haciendo referencia a la clase BuildConfig de su proyecto, no desde ninguna de sus bibliotecas de dependencias.

Introduzca aquí la descripción de la imagen

Debido a los comentarios mezclados acerca de BuildConfig.DEBUG , usé lo siguiente para desactivar crashlytics (y análisis) en modo de depuración:

Update /app/build.gradle

 android { compileSdkVersion 25 buildToolsVersion "25.0.1" defaultConfig { applicationId "your.awesome.app" minSdkVersion 16 targetSdkVersion 25 versionCode 100 versionName "1.0.0" buildConfigField 'boolean', 'ENABLE_CRASHLYTICS', 'true' } buildTypes { debug { debuggable true minifyEnabled false buildConfigField 'boolean', 'ENABLE_CRASHLYTICS', 'false' } release { debuggable false minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } 

Entonces, en su código usted detecta el indicador ENABLE_CRASHLYTICS como sigue:

  if (BuildConfig.ENABLE_CRASHLYTICS) { // enable crashlytics and answers (Crashlytics by default includes Answers) Fabric.with(this, new Crashlytics()); } 

Utilice el mismo concepto en su aplicación y cambie el nombre de ENABLE_CRASHLYTICS por cualquier cosa que desee. Me gusta este enfoque porque puedo ver la bandera en la configuración y puedo controlar la bandera.

Alternativamente, puede diferenciar usando BuildConfig.BUILD_TYPE;

Si está ejecutando la compilación de depuración BuildConfig.BUILD_TYPE.equals("debug"); Devuelve true. Y para la compilación de lanzamiento BuildConfig.BUILD_TYPE.equals("release"); Devuelve true.

  • InputStream a JsonObject - GSON
  • Cómo capturar el error 'Bitmap demasiado grande para ser cargado en una textura'
  • Jackson ObjectMapper Definiciones de definiciones conflictivas (Android.Graphics.Bitmap)
  • Registro de escritura de Android en el archivo
  • Android: Necesidad de crear un objeto Preferencias compartidas en c ++ NDK y almacenar algún valor booleano
  • Obtener el nombre de ubicación actual del usuario sin necesidad de utilizar gps o Internet, sino mediante Network_Provider en android
  • Creación de un número aleatorio de 4 dígitos y almacenamiento de una cadena
  • Envío de HTML en el cuerpo de un mensaje de correo electrónico
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.