1

I have a Android Library and I am using it in app module. In library I use a BuildConfig.SPECIAL_VALUE. I would like to override this BuildConfig in my app module build gradle.

I found similary question but It doesn't help me (Access buildConfigField from gradle in Android app) I try this but is not working:

My app module build.gradle:

android {


publishNonDefault true
compileSdkVersion 28
flavorDimensions "default"
buildToolsVersion '28.0.3'


defaultConfig {
    applicationId "app....id"
    flavorDimensions "default"
    minSdkVersion 23
    targetSdkVersion 28
    versionCode 1
    versionName "1.0.0"
    multiDexEnabled true
    renderscriptTargetApi 18
    renderscriptSupportModeEnabled true
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField 'boolean', 'DEBUG_LOG_ENABLED', 'false'
        signingConfig signingConfigs.productivity_mentor_release_config
        debuggable = false
        manifestPlaceholders = [crashlyticsEnabled: true]
    }
    debug {
        testCoverageEnabled = false
        buildConfigField 'boolean', 'DEBUG_LOG_ENABLED', 'true'
        debuggable = true
        manifestPlaceholders = [crashlyticsEnabled: false]
    }
    unitTest {
        testCoverageEnabled = false
        buildConfigField 'boolean', 'DEBUG_LOG_ENABLED', 'false'
        manifestPlaceholders = [crashlyticsEnabled: false]
    }
}

productFlavors {
    develop {
        buildConfigField 'boolean', 'LOG_EVENTS_TO_REMOTE_ENABLED', 'false'
        buildConfigField 'boolean', 'FIREBASE_CRASH_ENABLED', 'false'
        buildConfigField 'String', 'SPECIAL_VALUE', '"11"'
    }
    production {
        buildConfigField 'boolean', 'LOG_EVENTS_TO_REMOTE_ENABLED', 'true'
        buildConfigField 'boolean', 'FIREBASE_CRASH_ENABLED', 'true'
        buildConfigField 'String', 'SPECIAL_VALUE', '"22"'
    }
    beta {
        buildConfigField 'boolean', 'LOG_EVENTS_TO_REMOTE_ENABLED', 'true'
        buildConfigField 'boolean', 'FIREBASE_CRASH_ENABLED', 'true'
        buildConfigField 'String', 'SPECIAL_VALUE', '"33"'
    }
    roboTest {
        minSdkVersion 18
        buildConfigField 'boolean', 'LOG_EVENTS_TO_REMOTE_ENABLED', 'false'
        buildConfigField 'boolean', 'FIREBASE_CRASH_ENABLED', 'true'
        buildConfigField 'String', 'SPECIAL_VALUE', '"44"'
    }
}
testOptions {
    unitTests.returnDefaultValues = true
}
lintOptions {
    abortOnError false
}
compileOptions {
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
}

And my library build.gradle:

android {
compileSdkVersion 28
flavorDimensions "default"
buildToolsVersion '28.0.3'
publishNonDefault true
defaultConfig {
    minSdkVersion 22
    targetSdkVersion 28
    multiDexEnabled true
    renderscriptTargetApi 18
    renderscriptSupportModeEnabled true
    javaCompileOptions {
        annotationProcessorOptions {
            arguments = ["room.schemaLocation":
                                 "$projectDir/schemas".toString()]
        }
    }
}
buildTypes {
    release {}
    debug {}
    unitTest { }
}

productFlavors {
    develop {
        buildConfigField 'boolean', 'LOG_EVENTS_TO_REMOTE_ENABLED', 'false'
        buildConfigField 'boolean', 'FIREBASE_CRASH_ENABLED', 'false'
        buildConfigField 'String', 'SPECIAL_VALUE', '"1"'
    }
    production {
        buildConfigField 'boolean', 'LOG_EVENTS_TO_REMOTE_ENABLED', 'true'
        buildConfigField 'boolean', 'FIREBASE_CRASH_ENABLED', 'true'
        buildConfigField 'String', 'SPECIAL_VALUE', '"2"'
    }
    beta {
        buildConfigField 'boolean', 'LOG_EVENTS_TO_REMOTE_ENABLED', 'true'
        buildConfigField 'boolean', 'FIREBASE_CRASH_ENABLED', 'true'
        buildConfigField 'String', 'SPECIAL_VALUE', '"3"'
    }
    roboTest {
        minSdkVersion 18
        buildConfigField 'boolean', 'LOG_EVENTS_TO_REMOTE_ENABLED', 'false'
        buildConfigField 'boolean', 'FIREBASE_CRASH_ENABLED', 'true'
        buildConfigField 'String', 'SPECIAL_VALUE', '"4"'
    }
}
testOptions {
    unitTests.returnDefaultValues = true
}
lintOptions {
    abortOnError false
}
compileOptions {
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
}

}

ext {
    google_services_version = '16.0.7'
}
M.Devan
  • 169
  • 2
  • 13

0 Answers0