Gradle 多环境URL请求设置

在开发过程中,多环境配置是经常遇到的,比如在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
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值