Android Gradle 多环境URL请求设置

Posted zhujiabin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 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)
}

 

以上是关于Android Gradle 多环境URL请求设置的主要内容,如果未能解决你的问题,请参考以下文章

Android HttpUrlConnection如何在请求头中设置cookie?

MacOS环境下 JAVA+SAP+Android+Gradle环境变量设置

android stdio 安装后gradle 编译失败,设置代理不管用

即使没有任何更改,Android 多模块 Gradle 构建也很慢

gradle怎么设置jdk版本,不用系统环境变量的jdk-Android开发问答

AndroidStudio环境.gradle和.android路径配置