android studio 多版本打包

一、gradlew配置

  buildTypes {
        release {
            buildConfigField "boolean", "LOG_DEBUG", "true"
            minifyEnabled false
            shrinkResources false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

//debug版本不指定文件路径;如果需要则将次处代码放到debug之后
            applicationVariants.all { variant ->
                variant.outputs.all {
                    if (variant.buildType.name.equals('release')) {
                        // 自定义输出路径
                        variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + File.separator + "outputs")
                        outputFileName = "${((project.name != "app") ? project.name : rootProject.name)}_${defaultConfig.versionName}_${variant.productFlavors[0].name}_${releaseTime()}.apk"
                        println "文件路径:-----------------${project.rootDir.absolutePath + File.separator + "outputs"}"
                        println "文件名:-----------------${outputFileName}"

                    }
                }
            }

        }
        debug {
            buildConfigField "boolean", "LOG_DEBUG", "true"
            minifyEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

//配置多版本内容,生成的配置信息会生成在BuildConfig文件中
    flavorDimensions "app"
    productFlavors {
//        开发使用地址
        baserelease {
            dimension "app"
            buildConfigField "String", "SERVICE", '""'//地址 BuildConfig.SERVICE
            buildConfigField "String", "BUILDTYPE", '"oppo"'//文件名称
        }
//        测试使用地址
        releasetest {
            dimension "app"
            buildConfigField "String", "SERVICE", '"http://192.168.1.116:8081/"'
            buildConfigField "String", "BUILDTYPE", '"releasetest"'
        }
        //生产使用地址
        releasetestbj {
            dimension "app"
            buildConfigField "String", "SERVICE", '"http://192.168.100.31:8081"'
            buildConfigField "String", "BUILDTYPE", '"release"'
        }

        productFlavors.all { flavor ->
            flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }
    }

配置后可以看到多个版本:如图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、java项目中使用

只列出请求地址的方式,其他配置内容可以效仿

//如果可以获取到配置的地址则使用配置的,否则使用配置的地址
    public static final String sStarURL = TextUtils.isEmpty(BuildConfig.SERVICE) ? "http://192.168.1.1:2000/#/login" : BuildConfig.SERVICE;//地址配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值