其他分享
首页 > 其他分享> > android – 在依赖项中选择特定的构建类型

android – 在依赖项中选择特定的构建类型

作者:互联网

假设我有一个包含三种构建类型的Android应用程序:

buildTypes {
    release {
        ....
    }
    optRelease {
        ....
    }
    debug {
        ....
    }
}

我有一个依赖模块:

dependencies {
    implementation project(':myDependency')
}

假设这个依赖只有两种构建类型(比如调试和发布),我希望完全控制我的应用程序的构建类型中的哪一个使用依赖项的构建类型.例如,我希望我的应用程序的optRelease使用该库的版本,并且应用程序的发布使用库的调试.

在Android Studio 3.0之前曾经有过这种情况,但新的构建变体系统似乎不再允许这样做.

如何明确说明要使用的构建类型?假设我无法控制依赖关系,也无法修改其gradle配置.

解决方法:

您可以使用matchingFallback

buildTypes {
    release {
       matchingFallbacks = ['debug']
       ... 
    }
    optRelease {
       matchingFallbacks = ['release']  
       ...
    }
    debug {
       matchingFallbacks = ['debug']  
       ...
    }
}

您还可以指定回退列表,如下所示:

optRelease {
    matchingFallbacks = ['release','debug']  
}

This will specify a sorted list of fallback build types that the
plugin should try to use when a dependency does not include a
“optRelease” build type. You may specify as many fallbacks as you
like, and the plugin selects the first build type that’s available in
the dependency
.

有关详细信息,请参阅official document.

但是,如果要在定位外部依赖项时使用特定于变体的配置.你可以这样做:

debugImplementation项目(‘:myDependency’)

这将使myDependency仅依赖于模块的“调试”版本.

标签:android,android-gradle,android-build
来源: https://codeday.me/bug/20190910/1799491.html