android studio 利用productFlavors 生成三种不同网络环境的Apk

为了方便开发,都会有不同的网络环境

android 开发中我们在项目上线前都需要结果大量的测试,为了方便不同环境的测试,我们需要打不同网络环境的apk

今天给大家分享下一个项目打三种apk,这三种apk可以在手机上并行安装,不会出现覆盖

主要利用build.gradle 的productFlavors

下面直接上代码 这些代码都是在build.gradle文件里android目录下的

flavorDimensions "color"
productFlavors {
    productrRelease {
        applicationId "com.example.lishuai.productflavorsapk"
        resValue "string", "app_name", "FlavorsApk"
        buildConfigField 'int', 'SDK_APPID', '123'
        buildConfigField 'String', 'URL_HTTP', '"www.baidu.com"'
        manifestPlaceholders = [

                JPUSH_PKGNAME: applicationId,
                JPUSH_APPKEY : "3cd6db0f0d84ef85f6a38ed3",
                JPUSH_CHANNEL: "developer-default",
                _AMAP_KEY    : "63622f57b1ed9b3b9a11e4707422cbc7",
                _UMENG_KEY   : "5ad446b3f29d98062d00007d",
        ]
        dimension "color"
    }
productrDebug {
    applicationId "com.example.lishuai.productflavorsapk.debug"
    resValue "string", "app_name", "FlavorsDebug"
    buildConfigField 'int', 'SDK_APPID', '567'
    buildConfigField 'String', 'URL_HTTP', '"www.mi.com"'
    manifestPlaceholders = [

            JPUSH_PKGNAME: applicationId,
            JPUSH_APPKEY : "3cd6db0f0d84ef85f6a38ed3",
            JPUSH_CHANNEL: "developer-default",
            _AMAP_KEY    : "63622f57b1ed9b3b9a11e4707422cbc7",
            _UMENG_KEY   : "5ad446b3f29d98062d00007d",
    ]
    dimension "color"
}
}

添加后编译会报错,这时候我们还需要添加些东西

在build.gradle文件里defaultConfig目录下添加 multiDexEnabled true

这时候我们本来是可以开始打包的,但是我们为了区分不同的apk的环境,我们可以把applicationId 的对应包名改了

app_name 对应AndroidManifest里面Application的lable的内容,app_name的字段不要在strings.xml文件里面出现

在productrRelease节点下有一个int类型的数据和String的数据(String的后面所根的值格式必须是'"sss"'这样的) 

我们想要用这两个根据打包类型变更的数据的话,可以这样引用 BuildConfig.URL_HTTP

通过上面的简单配置我们就可以在一套代码里生成多种环境的app

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章