Android子模块下productFlavors的配置

作者: SerBad | 来源:发表于2020-04-20 12:00 被阅读0次

    以下文章说明中,_android_test_google代表的是Flavors,debugrelease代表的是buildTypes,提前说明,根据你自己的项目需要,也许有所不同。

    在多模块下,子模块的Flavors该如何设置呢?其实不用什么特别的设置,只需要子模块保持和主模块一样的Flavors就行,然后按照以下来引用就好了。需要注意的是,两者要保持一致,只许子模块比主模块的Flavors多,但不能少,或者完全没有Flavors。

        implementation project(path: ':lib')
    

    尤其需要特别说明的一点是,之前搜到了一些国内的文章,得到是一个错误的结果:

       _testReleaseImplementation project(path: ':lib', configuration:'_testRelease')
       _testDebugImplementation project(path: ':lib', configuration:'_testRelease')
       _androidReleaseImplementation project(path: ':lib', configuration:'_androidRelease')
       _androidDebugImplementation project(path: ':lib', configuration:'_androidRelease')
    

    但是该方法在gradle3.0以上的版本中已经移除了,虽然gradle的语法依然支持这种形式,但是该功能已经不再支持了。官网说明

    同时,如果主模块和另一个子模块同时引用了一个带有Flavors的子模块的话,依然需要在该子模块中添加相对应的Flavors,如果实在不需要添加的话,需要添加的是,参见说明

    android {
        ...
        defaultConfig {
            ...
            //"mode"来源于相关引用的flavorDimensions和Flavors
            missingDimensionStrategy "mode",'_android' 
        }
    }
    

    如果需要添加在只有在某个Flavors下导入的包的话,可以这样做:

        //以下代表只在_test时导入picasso包,
        //但是为了避免平时开发时出现的导包错误,添加一个compileOnly只在编译时有该包
        _testRuntimeOnly 'com.squareup.picasso:picasso:2.71828'
        compileOnly 'com.squareup.picasso:picasso:2.71828'
    

    如果需要添加在不同Flavors下导入的包的话,可以这样做:

        _androidImplementation('com.getui:sdk:2.14.0.0')
        _testImplementation('com.getui:sdk:2.14.0.0') 
        _googleImplementation('com.getui:sdk-for-google-play:4.3.8.0')
    

    以上有一点需要说明的_testReleaseImplementation_testDebugImplementation这种方式虽然语法上支持,但不再提供默认支持了,如果你需要的话,需要添加以下代码,请根据你自己的需要来,不要直接照抄,说明

    configurations {
        _testReleaseImplementation
        _testDebugImplementation
        _androidReleaseImplementation
        _androidReleaseImplementation
    }
    

    附上一个哥们关于flavorDimensions的介绍说明

    又及,以上所有信息以官网信息为准。

    相关文章

      网友评论

        本文标题:Android子模块下productFlavors的配置

        本文链接:https://www.haomeiwen.com/subject/cduyvhtx.html