Как переопределить BuildConfig из Android -Library? - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть библиотека Android, и я использую ее в модуле приложения. В библиотеке я использую BuildConfig.SPECIAL_VALUE. Я хотел бы переопределить этот BuildConfig в своем модуле сборки модуля приложения.

Я нашел похожий вопрос, но он мне не помогает ( Доступ к buildConfigField из gradle в Android app ) Я пытаюсь это, но не работает:

Мой модуль приложения 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
}

И моя библиотека 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'
}
...