精华内容
下载资源
问答
  • BuildConfig配置

    千次阅读 2019-05-05 15:58:32
    BuildConfig的配置一般如下: public final class BuildConfig { public static final boolean DEBUG = false; public static final String APPLICATION_ID = "com.qiaofang.qfangadtv"; public static final ...

    BuildConfig的配置一般如下:

    public final class BuildConfig {
      public static final boolean DEBUG = false;
      public static final String APPLICATION_ID = "com.qiaofang.qfangadtv";
      public static final String BUILD_TYPE = "release";
      public static final String FLAVOR = "dev";
      public static final int VERSION_CODE = 1;
      public static final String VERSION_NAME = "1.0.0";
      // Fields from product flavor: dev
      public static final String HOST = "http://*******";
    }
    

    除了HOST字段是自定义的,其他都是根据项目配置自动生成的,那这些自动生成的值都是在哪里配置呢?

    第一个字段“DEBUG”,这个字段使用的较多,一般通过此字段来决定是否打印log,很简单,例如:

    if(BuildConfig.DEBUG){
    	Log.e();
    }
    

    这个字段的值在app module下的build文件中配置:

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            debuggable false
            signingConfig signingConfigs.config
        }
        debug {
            debuggable true
            signingConfig signingConfigs.config
        }
    }
    

    **第二个字段“APPLICATION_ID”**就是指定生成apk包的包名,也是在build文件中指定,有如下方式配置:

    //默认配置(productFlavors 里不配置的时候使用此默认配置,这里不指定的话就使用manifest中的package的值)
     defaultConfig {
            applicationId 'com.cui.demo.test'
            }
    
    //不同渠道配置
      productFlavors {
      dev{
     		 applicationId 'com.cui.demo.test'
      }
    }
    

    第三个字段“BUILD_TYPE”,选项配置和第一个字段一样是在buildTypes 中配置,值根据打包类型变化,如果是debug包值就是“debug”,如果是release包值就是“release”.

    第四个字段“FLAVOR”,渠道包的名字,我这里一共配置了三个渠道:

    productFlavors{
            dev{
                manifestPlaceholders = [
                        BUGLY_ENABLE_DEBUG:true,
                        alibaba_appkey:"",
                        alibaba_appsecret:""
                ]
                buildConfigField("String", "HOST", "\"http://****/\"")
            }
    
            uat{
                manifestPlaceholders = [
                        BUGLY_ENABLE_DEBUG:true,
                        alibaba_appkey:"",
                        alibaba_appsecret:""
                ]
                buildConfigField("String", "HOST", "\"http://****/\"")
            }
    
            prod{
                manifestPlaceholders = [
                        BUGLY_ENABLE_DEBUG:false,
                        alibaba_appkey:"",
                        alibaba_appsecret:""
                ]
                buildConfigField("String", "HOST", "\"http://******/\"")
            }
        }
    

    这里我选择的是dev的渠道,所以值是“dev”.

    第五个字段“VERSION_CODE” 这个就是app的version_code,和第二个字段一样,可以在渠道配置里指定,否则使用defaultConfig中的配置。

    第六个字段“VERSION_NAME” 同上。

    以上就是系统默认字段,有时候我们想自定义一些字段来全局使用,怎么做呢?
    在build文件中调用buildConfigField(String,String,String)这个方法就可以了,例如:

    buildConfigField("String", "HOST", "\"http://****/\"")
    buildConfigField("boolean", "isLike", "true")
    
    展开全文
  • 博客源址:... 2015 年 01 月 25 日 ...在很早之前我发布了这篇博客Android BuildConfig.DEBUG的妙用, ... 提到了Eclipse中通过BuildConfig.DEBUG字段用来调试Log非常好用,但是殊不知在Android

    博客源址http://stormzhang.com/android/2015/01/25/gradle-build-field/

    2015 年 01 月 25 日

    在很早之前我发布了这篇博客Android BuildConfig.DEBUG的妙用, 提到了Eclipse中通过BuildConfig.DEBUG字段用来调试Log非常好用,但是殊不知在Android Studio中通过Gradle这种用法更加强大。

    BuildConfig.DEBUG

    首先在Gradle脚本中默认的debug和release两种模式BuildCondig.DEBUG字段分别为true和false,而且不可更改。该字段编译后自动生成,在Studio中生成的目录在app/build/source/BuildConfig/Build Varients/package name/BuildConfig 文件下。我们以9GAG为例来看下release模式下该文件的内容:

    
    public final class BuildConfig {
      public static final boolean DEBUG = false;
      public static final String APPLICATION_ID = "com.storm.9gag";
      public static final String BUILD_TYPE = "release";
      public static final String FLAVOR = "wandoujia";
      public static final int VERSION_CODE = 1;
      public static final String VERSION_NAME = "1.0";
      // Fields from build type: release
      public static final boolean LOG_DEBUG = false;
    }
    
    

    自定义BuildConfig字段

    大家看到上述内容的时候发现莫名的有个LOG_DEBUG字段,这个完全是我自定义的一个字段,我来用它控制Log的输出,而没有选择用默认的DEBUG字段。举例一个场景,我们在App开发用到的api环境假设可能会有测试、正式环境,我们不可能所有的控制都通过DEBUG字段来控制,而且有时候环境复杂可能还会有两个以上的环境,这个时候就用到了Gradle提供了自定义BuildConfig字段,我们在程序中通过这个字段就可以配置我们不同的开发环境。

    语法很简单:

    buildConfigField "boolean", "API_ENV", "true"

    例如,(测试环境:Android Studio2.1.1 gradle为2.1.0)在‘app’module的build.gradle中添加如下代码:


    然后 Build -> Rebulid Project 在 app/.../buidlConfig目录下 分别自动生成BuildConfig.API_ENV;


    上述语法就定义了一个boolean类型的API_ENV字段,值为true,之后我们就可以在程序中使用BuildConfig.API_ENV字段来判断我们所处的api环境。例如:

    
    public class BooheeClient {
        public static final boolean DEBUG = BuildConfig.API_ENV;
    
        public static String getHost {
            if (DEBUG) {
                return "your qa host";
            }
            return "your production host";
        }
    }
    
    

    不仅如此,如果遇到复杂的环境,你也可能自定义一个String类型的字段,这种方式免去了发布之前手动更改环境的麻烦,减少出错的可能性,只需要在Gradle配置好debug、release等模式下的环境就好了,打包的之后毫无顾虑。

    使用方法很简单,大家如果有问题或者疑问可以直接博客留言。



    展开全文
  • BuildConfig.DEBUG

    千次阅读 2018-07-23 19:52:16
    在很早之前我发布了这篇博客Android BuildConfig.DEBUG的妙用, 提到了Eclipse中通过BuildConfig.DEBUG字段用来调试Log非常好用,但是殊不知在Android Studio中通过Gradle这种用法更加强大。 BuildConfig.DEBUG ...

    在很早之前我发布了这篇博客Android BuildConfig.DEBUG的妙用, 提到了Eclipse中通过BuildConfig.DEBUG字段用来调试Log非常好用,但是殊不知在Android Studio中通过Gradle这种用法更加强大。

    BuildConfig.DEBUG

    首先在Gradle脚本中默认的debug和release两种模式BuildCondig.DEBUG字段分别为true和false,而且不可更改。该字段编译后自动生成,在Studio中生成的目录在app/build/source/BuildConfig/Build Varients/package name/BuildConfig 文件下。我们以9GAG为例来看下release模式下该文件的内容:

    复制代码

    public final class BuildConfig {
      public static final boolean DEBUG = false;
      public static final String APPLICATION_ID = "com.storm.9gag";
      public static final String BUILD_TYPE = "release";
      public static final String FLAVOR = "wandoujia";
      public static final int VERSION_CODE = 1;
      public static final String VERSION_NAME = "1.0";
      // Fields from build type: release
      public static final boolean LOG_DEBUG = false;
    }

    复制代码

    自定义BuildConfig字段

    大家看到上述内容的时候发现莫名的有个LOG_DEBUG字段,这个完全是我自定义的一个字段,我来用它控制Log的输出,而没有选择用默认的DEBUG字段。举例一个场景,我们在App开发用到的api环境假设可能会有测试、正式环境,我们不可能所有的控制都通过DEBUG字段来控制,而且有时候环境复杂可能还会有两个以上的环境,这个时候就用到了Gradle提供了自定义BuildConfig字段,我们在程序中通过这个字段就可以配置我们不同的开发环境。

    语法很简单:

    buildConfigField "boolean", "API_ENV", "true"

    例如,(测试环境:Android Studio2.1.1 gradle为2.1.0)在‘app’module的build.gradle中添加如下代码:

     

    然后 Build -> Rebulid Project 在 app/.../buidlConfig目录下 分别自动生成BuildConfig.API_ENV;

     

    上述语法就定义了一个boolean类型的API_ENV字段,值为true,之后我们就可以在程序中使用BuildConfig.API_ENV字段来判断我们所处的api环境。例如:

    复制代码

    public class BooheeClient {
        public static final boolean DEBUG = BuildConfig.API_ENV;
    
        public static String getHost {
            if (DEBUG) {
                return "your qa host";
            }
            return "your production host";
        }
    }

    复制代码

    不仅如此,如果遇到复杂的环境,你也可能自定义一个String类型的字段,这种方式免去了发布之前手动更改环境的麻烦,减少出错的可能性,只需要在Gradle配置好debug、release等模式下的环境就好了,打包的之后毫无顾虑。

    使用方法很简单,大家如果有问题或者疑问可以直接博客留言。

    分类: android

    展开全文
  • Gradle自定义BuildConfig

    2017-01-24 17:21:04
    BuildConfig.DEBUG 首先在Gradle脚本中默认的debug和release两种模式BuildCondig.DEBUG字段分别为true和false,而且不可更改。该字段编译后自动生成,在Studio中生成的目录在app/build/source/BuildConfig/Build ...
    
    BuildConfig.DEBUG

    首先在Gradle脚本中默认的debug和release两种模式BuildCondig.DEBUG字段分别为true和false,而且不可更改。该字段编译后自动生成,在Studio中生成的目录在app/build/source/BuildConfig/Build Varients/package name/BuildConfig 文件下。我们以9GAG为例来看下release模式下该文件的内容:

    public final class BuildConfig {
      public static final boolean DEBUG = false;
      public static final String APPLICATION_ID = "com.gradle.demo";
      public static final String BUILD_TYPE = "release";
      public static final String FLAVOR = "baidu";
      public static final int VERSION_CODE = 1;
      public static final String VERSION_NAME = "1.0";
      // Fields from build type: release
      public static final boolean LOG_DEBUG = false;
    }

    自定义BuildConfig字段

    大家看到上述内容的时候发现莫名的有个LOG_DEBUG字段,这个完全是我自定义的一个字段,我来用它控制Log的输出,而没有选择用默认的DEBUG字段。举例一个场景,我们在App开发用到的api环境假设可能会有测试、正式环境,我们不可能所有的控制都通过DEBUG字段来控制,而且有时候环境复杂可能还会有两个以上的环境,这个时候就用到了Gradle提供了自定义BuildConfig字段,我们在程序中通过这个字段就可以配置我们不同的开发环境。

    语法很简单:

    buildConfigField "boolean", "API_ENV", "true"
    

    例如,(测试环境:Android Studio2.1.1 gradle为2.1.0)在‘app’module的build.gradle中添加如下代码:


    然后 Build -> Rebulid Project 在 app/.../buidlConfig目录下 分别自动生成BuildConfig.API_ENV;


    上述语法就定义了一个boolean类型的API_ENV字段,值为true,之后我们就可以在程序中使用BuildConfig.API_ENV字段来判断我们所处的api环境。例如:

    public class BooheeClient {
        public static final boolean DEBUG = BuildConfig.API_ENV;
    
        public static String getHost {
            if (DEBUG) {
                return "your qa host";
            }
            return "your production host";
        }
    }

    不仅如此,如果遇到复杂的环境,你也可能自定义一个String类型的字段,这种方式免去了发布之前手动更改环境的麻烦,减少出错的可能性,只需要在Gradle配置好debug、release等模式下的环境就好了,打包的之后毫无顾虑。

    展开全文
  • 找不到符号: 变量 BuildConfig

    万次阅读 2016-07-08 12:05:17
    问题: Error:(133, 9) 错误: 找不到符号 符号: 变量 BuildConfig 位置: 类 Metadata 原因:BuildConfig类是在编译时...app/build/source/BuildConfig/Build Varients/package name/BuildConfig修改包名后,原来
  • Android自定义BuildConfig字段

    千次阅读 2018-11-28 13:18:31
    public final class BuildConfig { public static final boolean DEBUG = false; public static final String APPLICATION_ID = "com.maxd.test"; public static final String BUILD_TYPE = "...
  • Android studio中的BuildConfig

    万次阅读 多人点赞 2018-03-17 17:53:51
    build.gradle BuildConfig
  • Android Studio解决BuildConfig同步问题

    千次阅读 2020-03-25 17:20:55
    问题描述 自定义的debug在BuildConfig没有找到,找了一些解决方案要么不行,要么太复杂。 解决方案 参考下这个帖子 传送门GO=》》》 ...找个java文件输入BuildConfig,进入BuildConfig查看下是否生效。 ...
  • Android BuildConfig文件

    千次阅读 2016-04-16 20:30:26
    BuildConfig.java是开发工具自动生成的一个文件,不要手动去修改/** * Automatically generated file. DO NOT MODIFY */ package com.example.administrator.myapplication;public final class BuildConfig { ...
  • 安卓BuildConfig与DEBUG模式

    千次阅读 2018-11-27 15:21:59
    在安卓项目中Mobule的build.gradle文件中buildConfigField和...我们今天说的BuildConfig就是用buildConfigField定义的常量。如下所示: android { compileSdkVersion LIBRARY_COMPILE_SDK_VERSION buildTools...
  • 变量 BuildConfig 找不到。飘红

    千次阅读 2020-12-01 17:24:38
    问题: Error:(133, 9) 错误: 找不到符号 符号: 变量 BuildConfig 位置: 类 Metadata ...BuildConfig类是在编译时自动生成的,分为debug和release两个版本,路径是: app/build/source/BuildConfig/Build V...
  • BuildConfig.class 冲突

    千次阅读 2017-03-10 17:20:12
    报java.util.zip.ZipException BuildConfig.class 冲突 原因 build版本不一致
  • 以前我们基本都是利用PackageManager来获取版本名和版本号,在Android Studio下我们可以利用BuildConfig来获取版本名和版本号,代码如下: /** * 获取版本名 */ public static String getVersionName() { ...
  • 自定义生成BuildConfig文件

    千次阅读 2019-05-05 10:10:21
    BuildConfig文件在这个位置 我们知道这个是工具生成的文件我们并不能手动更改,我们如何去改变它呢,请看 这个testId是我手动添加的,接下来再看它是如何添加的,第一步,打开我们model的Gradle 看到...
  • BuildConfig 类是 Gradle 自动生成的,存放在 /build/generated/source/buildConfig/debug(release)/包名/BuildConfig 因此我们需要在 Gradle 构建时来配置这个类的属性。而在开发中,我们想在 BuildConfig 中增加一...
  • 找不到符号 变量 BuildConfig
  • Gradle 配置 BuildConfig详解

    千次阅读 2016-09-08 00:04:07
    BuildConfig 前面文章有简要提到,这次详细介绍每个命令代表什么。这个功能非常强大,我们可以通过在这里设置一些key-value对,这些key-value 对在不同编译类型的 apk 下的值不同,比如我们可以为debug 和release 两...
  • BuildConfig文件的位置:你的工程目录-build-generated-source-buildConfig-debug-包名-BuildConfig.java 我们知道这个是工具生成的文件我们并不能手动更改,我们如何去改变它呢? 第一步,打开我们module的Gradle ...
  • as4.1编译时报出找不到BuildConfig.APPLICATION_ID library 中已经把BuildConfig.APPLICATION_ID字段废弃掉,因为很容易造成误导,因此使用BuildConfig.LIBRARY_PACKAGE_NAME代替。而 app 中的BuildConfig....
  • android的BuildConfig学习

    千次阅读 2016-06-28 14:59:21
    本文是自学BuildConfig的一些小知识点,希望对你有所帮助。
  • 问题描述: AndroidStudio导出jar包给unity使用,会自动加入一个BuildConfig,unity打包时会报错 使用前提: 安装了JDK dos命令行进入相关路径: 使用 jar 解包 jar xf xx.jar 删除文件 重新打包 jar cf xx.jar 目录...
  • 关于BuildConfig类,众所周知,类似R.class,自动生成的类,不能修改。 每个gradle.build都会生成一个BuildConfig.java,除自定义的以外,还有一些默认的字段。 一、定义: 在build.gradle中定义: android{ ...
  • 今天把 Android Studio 更新到了 4.0,编译时报出找不到BuildConfig.APPLICATION_ID的问题。找了资料才发现原来 Google 早已在 Android Studio 3.5 之后做出了变更: BuildConfig: Deprecate APPLICATION_ID in ...
  • Android Studio之BuildConfig

    千次阅读 2017-05-11 11:29:10
    Android Studio开发中,把一个module输出打包为jar文件,我们会发现里面多了一个BuildConfig类,但在整个开发过程中我们始终没有写过这个类,这是怎么回事呢? 原来,BuildConfig类是一个根据build.gradle配置文件...
  • 在时候,就是找不到包名下的BuildConfig.VERSION_NAME,如下图所示 问题描述: 编译时报错: 错误: 找不到符号 符号: 变量 VERSION_NAME 位置: 类 BuildConfig 原因分析: 从...
  • Android开发过程中通常我们区分debug和release的相关配置都会采用BuildConfig.DEBUG来进行判断,殊不知这个东西弄不好却是一个坑,刚好在最近的开发过程中遇到。 问题 最近在负责一个内部系统,需要根据BuildConfig...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 441,071
精华内容 176,428
关键字:

buildConfig