如何在Android項目中配置BuildConfig常量

在AndroidStudio中構建項目的時候,可以通過build.gradle來配置一些常量,用於全局使用,比如說APP的版本號、作者名、公司名等等。那麼怎麼實現這些配置呢?

首先我們打開android項目app目錄下的build.gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.xing.app.xxx"
        minSdkVersion 17
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
}

dependencies {
    //省略部分代碼
}

如果沒有意外的話,打開應該是這個樣子的

重點我們看

    defaultConfig {
        applicationId "com.xing.app.xxx"
        minSdkVersion 17
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        
        //配置APP變量
        buildConfigField ("boolean", "isOpen", "false")
        buildConfigField ("String", "str", "\"測試字符\"")
        buildConfigField ("int", "inin", "18")
        
    }

當我們加入buildConfigField語句之後,rebuild一下項目,就可以在該項目中的任何一個地方應用這個isOpen變量啦,比如

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        //就像這樣
        boolean isOpen = BuildConfig.isOpen;
        String str = BuildConfig.str;
        int tmp = BuildConfig.inin;

    }
}

可能眼睛尖的小夥伴已經發現了,爲什麼定義String類型的時候,要用轉義字符加雙引號呢?因爲字符串類型較爲特殊,在你編譯完成之後如果不加雙引號,就會發現BuildConfig類報錯。。。原因就是字符串在定義的時候沒有雙引號

與此同時,BuildConfig類的情況是這樣的

public final class BuildConfig {

  //下面就是我們通過field添加進來的變量
  // Fields from default config.
  public static final int inin = 18;
  public static final boolean isOpen = false;
  public static final String str = "測試字符";//如果不加轉義字符就會使這裏報錯
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章