ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-09-10 15:33:57  阅读:237  来源: 互联网

标签:android android-gradle android-build


假设我有一个包含三种构建类型的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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有