为了方便开发,都会有不同的网络环境
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