Android Gradle 多环境URL请求设置

智者不为愚者谋,勇者不为怯者死。这篇文章主要讲述Android Gradle 多环境URL请求设置相关的知识,希望能为你提供帮助。
在开发过程中,多环境配置是经常遇到的,比如在android开发过程中,在不同环境上请求服务器的URL是不同的,使用Gradle进行管理,是非常方便的。
首先查看工程目录结构:

Android Gradle 多环境URL请求设置

文章图片

使用AndroidStudio开发的看到这个熟悉吧。main就是目前开发的环境。dev为测试环境。product,staging为其他环境,当然还可以有其他更多环境。
【Android Gradle 多环境URL请求设置】1、将请求的URL定义到Constant常量类中:
public class Constant { public static final String URL= “ http://XXXXX“ ; }

在dev,product,staging等环境中添加Constant类,并且设置不同URL即可。
设置后目录结构如下:我的app包名为com.example.XX.myapplication
Android Gradle 多环境URL请求设置

文章图片

这里需要注意的是不要在main环境中添加Constant类,否则类就重复了,Gradle编译时会报:dumplicate class XXX
使用时就和普通类使用方式一样!
Gradle配置:
apply plugin: ‘com.android.application‘android { compileSdkVersion 21 buildToolsVersion "19.1.0"lintOptions { abortOnError false }defaultConfig { applicationId "com.example.teamlab.myapplication" minSdkVersion 9 targetSdkVersion 21 versionCode 1 versionName "1.0" } signingConfigs { debug { storeFile file("src/main/keystore/debug.keystore") storePassword "android" keyPassword "android" } release { storeFile file("src/main/keystore/debug.keystore") storePassword "android" keyPassword "android" } staging { storeFile file("src/main/keystore/debug.keystore") storePassword "android" keyPassword "android" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘ } debug { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘ } } productFlavors { dev { applicationId ‘com.example.teamlab.myapplication.dev‘ signingConfig signingConfigs.debug } staging { signingConfig signingConfigs.debug applicationId ‘com.example.teamlab.myapplication.staging‘ } product { applicationId ‘com.example.teamlab.myapplication‘ signingConfig signingConfigs.debug } } packagingOptions { exclude ‘META-INF/notice.txt‘ exclude ‘META-INF/license.txt‘ } }dependencies { compile fileTree(dir: ‘libs‘, include: [‘*.jar‘]) compile ‘com.android.support:appcompat-v7:21.+‘ compile ‘com.android.support:support-v4:21.+‘ compile ‘cn.pedant.sweetalert:library:1.3‘ compile ‘com.mcxiaoke.volley:library:1.0.+‘ androidTestCompile ‘junit:junit:4.10‘ androidTestCompile ‘org.robolectric:robolectric:2.3+‘ androidTestCompile ‘com.squareup:fest-android:1.0.+‘ compile project(‘:slidingmenu‘) }

 

    推荐阅读