DEBUG is always true even though building in release mode

Viewed 127

BuildConfig's DEBUG is always true, no matter if i build in release variant. I know BuildConfig file is actually generated during build, and during execution DEBUG is also always true.

public final class BuildConfig {
    public static final boolean DEBUG = Boolean.parseBoolean("true");
    public static final String APPLICATION_ID = "myId";
    public static final String BUILD_TYPE = "release";
    public static final String FLAVOR = "prd";
    public static final int VERSION_CODE = 1;
    public static final String VERSION_NAME = "1.0";
    // Fields from product flavor: prd
    public static final String BASE_URL = "http://10.0.2.2:3000/";
}
android {
    compileSdkVersion 28
    flavorDimensions "default"
    defaultConfig {
        applicationId "myId"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    dataBinding {
        enabled = true
    }

    signingConfigs {
        debug {
            storeFile file('../debug.keystore')
            storePassword debugStorePassword
            keyAlias debugKeyAlias
            keyPassword debugKeyPassword
        }

        // FIXME
        // https://developer.android.com/studio/publish/app-signing
        release {
            storeFile file('../debug.keystore')
            storePassword debugStorePassword
            keyAlias debugKeyAlias
            keyPassword debugKeyPassword
        }
    }

    buildTypes {
        release {
            testCoverageEnabled true
            minifyEnabled false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

        debug {
            signingConfig signingConfigs.debug
            applicationIdSuffix ".debug"
        }
    }

    productFlavors {
        prd {
            buildConfigField('String', 'BASE_URL', BASE_URL_LOCAL)
        }

        dev {
            buildConfigField('String', 'BASE_URL', BASE_URL_LOCAL)
        }
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}
1 Answers

I've found the problem.

testCoverageEnabled true automatically sets DEBUG to true, so you have to remove it or place it in debug buildType.

Related