Gradle 多环境URL请求设置

来源:互联网 发布:蜘蛛源码 编辑:程序博客网 时间:2024/06/05 12:46

在开发过程中,多环境配置是经常遇到的,比如在Android开发过程中,在不同环境上请求服务器的URL是不同的,使用Gradle进行管理,是非常方便的。
首先查看工程目录结构:
这里写图片描述
使用AndroidStudio开发的看到这个熟悉吧。main就是目前开发的环境。dev为测试环境。product,staging为其他环境,当然还可以有其他更多环境。

1、将请求的URL定义到Constant常量类中:

public class Constant {
public static final String URL= “http://XXXXX“;
}

在dev,product,staging等环境中添加Constant类,并且设置不同URL即可。
设置后目录结构如下:我的app包名为com.example.XX.myapplication
这里写图片描述
这里需要注意的是不要在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')}
0 0
原创粉丝点击