• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Android Studio在build.gradle定义全局变量,release、debug版本区分

武飞扬头像
打杂的程序员啦
帮助1

前言

Android App在开发的过程中,也有debug、release版本,对于两个版本同一个参数,不一样的value,则需要单独配置,配置过后,就不需要在发布的时候,因为版本不一样而去修改这些参数。

第一步,项目中新建配置文件

在 Project 目录下,新建配置文件 config.gradle,其内容如下:

ext{
    url = [
            "debug":"https://......",
            "release":"https://......"
    ]
    isEnableLog = [
            "debug": false,
            "release": false
    ]
    wellcomeWords = [
            "debug": "您好,这是测试版",
            "release": "您好,正式版本"
    ]
}

第二步,项目中引入配置文件

在 Project 的 build.gradle 文件中,引入配置文件:

apply from:"config.gradle"

第三步,模块中引入配置及变量

  1. 在 Moudle 的 build.gradle 文件 的 android 项下,新增配置参数signingConfigs ,如下:
signingConfigs {
        release {
//            keyAlias RELEASE_KEY_ALIAS
//            keyPassword RELEASE_KEY_PASSWORD
//            storeFile file('C:/appsign/abc.jks')
//            storePassword RELEASE_KEYSTORE_PASSWORD
        }
        debug {
//            keyAlias RELEASE_KEY_ALIAS
//            keyPassword RELEASE_KEY_PASSWORD
//            storeFile file('C:/appsign/abc.jks')
//            storePassword RELEASE_KEYSTORE_PASSWORD
        }
    }

学新通

  1. 在 buildTypes的 release、debug 中,分别引入要使用的变量,如下:
//release中增加配置
signingConfig signingConfigs.release
buildConfigField "Boolean", "IS_ENABLE_LOG", "${isEnableLog.release}"
buildConfigField("String", "HTTP_URL", "\"${url.release}\"")
resValue("string", "wellcomeWords", "${wellcomeWords.release}")
//debug中增加配置
signingConfig signingConfigs.debug
buildConfigField "Boolean", "IS_ENABLE_LOG", "${isEnableLog.debug}"
buildConfigField("String", "HTTP_URL", "\"${url.release}\"")
resValue("string", "wellcomeWords", "${wellcomeWords.debug}")
  1. 注意事项:

.java中使用需要使用 buildConfigField 进行配置

注意buildConfigField(“数据类型”,“变量字段”,“gradle.propertles中的值”)
buildConfigField中的数据类型使用标准类型命名 – 如:String
编译后,自动生成在java/包名/BuildConfig.java文件中;

.xml中使用需要使用 resValue 进行配置

resValue(“数据类型”,“变量字段”,“gradle.propertles中的值”)
resValue中使用小写命名 – 如:string
编译后,自动生成在res/values/(generated)中gradleResValues.xml文件中。

第四步,使用

  1. java文件中使用
BuildConfig.IS_ENABLE_LOG
BuildConfig.HTTP_URL
  1. xml中使用
    在xml中使用,和使用values/strings.xml中变量一个用法:
android:text="@string/wellcomeWords"

第五步,扩展

经过第四步的使用之后,那么strings.xml是不是也可以分为debug版本和release版本,答案是的;直接在 buildTypes 下,增加strings.xml的版本区分:

// release下增加
applicationIdSuffix ".release"
resValue "string", "app_name", "@string/app_name_release"

// release下增加
applicationIdSuffix ".debug"
resValue "string", "app_name", "@string/app_name_debug"

总结

使用Android studio对debug、release版本的分别配置就写到这里了,对于老手,这是很简单的一个常规操作,但是对于新手,还需要仔细配置一下,多多验证,以免出错。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfgeke
系列文章
更多 icon
同类精品
更多 icon
继续加载