AndroidStudio升级到3.0打多渠道包

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36707431/article/details/78407066

一、出现如下错误:

Error:All flavors must now belong to a named flavor dimension. 
Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html


     3.0版本的插件规定所有的flavors必须属于一个flavordimension,即我们要在所有plavor中返回一个flavordimension。flavordimension其实是一种便于我们对变体进一步控制的方式,对productFlavors的进一步分类。

 //为flavor设置一个版本,命名是随意的
    flavorDimensions "versionCode"
    // 多渠道打包
    productFlavors {
        appchina {
            dimension "versionCode"
        }
        baidu {
            dimension "versionCode"
        }
        yinyongbao {
            dimension "versionCode"
        }
        qihu360 {
            dimension "versionCode"
        }
        huawei {
            dimension "versionCode"
        }
        xiaomi {
            dimension "versionCode"
        }
    }

或者添加

    defaultConfig {
        applicationId "com.noway"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        //使用 multidex 的支持
        multiDexEnabled true
//        //为flavor设置一个版本,命名是随意的
//        flavorDimensions "versionCode"

    }

二、根据官方文档修改打包配置

  productFlavors.all { flavor ->
        flavor.manifestPlaceholders = [CHANNEL_VALUE: name]
    }
    //配置自定义打包名称
    android.applicationVariants.all { variant ->
        variant.outputs.all {

//            outputFileName = "${variant.name}-${variant.versionName}.apk"
            // 定义生成的apk的名称
            def apkName

                if (variant.buildType.name == 'release') {

                    apkName = "ZhaoYun_" + variant.productFlavors[0].name + "_${variant.versionName}.apk"
                }
                else if (variant.buildType.name == 'debug') {

//                    variant.mergedFlavor.versionName = getVersionName() + "." + releaseTime()

                    apkName = "ZhaoYun_${variant.versionName} " + "-" + releaseTime()+"_debug.apk"
                }
                //这里使用之前定义apk文件名称
                outputFileName  = apkName

        }
    }


猜你喜欢

转载自blog.csdn.net/qq_36707431/article/details/78407066