如何将BuildConfig值传递给依赖模块?

Ram*_*nba 7 android gradle android-gradle-plugin react-native

我在App模块的BuildConfig中有一些配置值.我想将这些值传递给MyLib的BuildConfig,这是App模块的依赖.可能吗?

Nar*_* NK 8

这就是我与库/模块 BuildConfig 共享应用程序版本代码和版本名称的方式:

在项目级别 gradle 文件中定义版本代码和名称:

ext {
        appVersionCode = 1
        appVersionName = '1.0.1' 
}
Run Code Online (Sandbox Code Playgroud)

现在在你的应用程序 gradle 中:

defaultConfig {
    ....
    versionCode $rootProject.appVersionCode
    versionName $rootProject.appVersionName
Run Code Online (Sandbox Code Playgroud)

在你的库/模块 gradle 中:

defaultConfig {
    ....
    def appVersionCode = $rootProject.appVersionCode
    def appVersionName = '\"' + $rootProject.appVersionName +'\"'

    versionCode appVersionCode
    versionName appVersionName

    //This part to get version code and name in library/module BuildConfig file 

    buildConfigField 'int', 'APP_VERSION_CODE', "$appVersionCode"
    buildConfigField 'String', 'APP_VERSION_NAME', appVersionName
Run Code Online (Sandbox Code Playgroud)

一个简单的项目解释了如何与多个模块共享 gradle buildConfigField 变量:https://github.com/Noddy20/Multi-Module-Gradle-Config


ali*_*dro 6

最简单的方法是创建第三个模块(库),并将该模块添加到库模块和应用程序模块的依赖项中。

然后将共享的构建配置放入共享的第三个模块中。

app module <------------------ library module
    ^                                ^
    |                                |
    | dependency                     |dependency
     ------------ third module -------
Run Code Online (Sandbox Code Playgroud)


小智 4

不,我们不能那样做。依赖模块无法访问App模块的BuildConfig文件。

解决您的问题的唯一替代解决方案是您需要将相同的属性添加到依赖项BuildConfig文件中。