Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
83 lines (67 sloc) 2.32 KB

在项目的 gradle.properties 中 定义 变量, 例如:

string_1_gradle = "java code"
string_2_gradle = res xml
support_version_gradle = 23.3.0

打开 Project 的 build.gradle:

ext.test_string = "test_string"

ext {
  // region [versions]
  // 之所以 注释掉, 是为了 在 Java 代码中 使用, 或许还有 更好的办法
  // support_version = '23.3.0'
  buildToolsVersion = "23.0.2"
  minSdkVersion = 15
  targetSdkVersion = 23
  // endregion

  // imknown: 暂时没啥用, 留着备用
  // girlFriends = [
  //   girlFriends01 : "gf01",
  //   girlFriends02 : "gf02"
  // ]
}

打开 Module 的 build.gradle:

apply plugin: 'com.android.application'

android {
    def version_code = 1
    def version_name = "1.0"

    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion

        versionCode version_code
        versionName version_name
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        buildTypes.each {
            // 注意 String 的 大小写 问题, 不然会有 语法错误
            it.buildConfigField 'String', 'STRING_1_FOR_JAVA', string_1_gradle
            
            it.resValue 'string', 'string_2_for_java', string_2_gradle
            
            // 注意 拼接 双引号
            it.buildConfigFeild 'String', 'SUPPORT_VERSION_FOR_JAVA', "\"" + support_version_gradle + "\""
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile "com.android.support:appcompat-v7:$support_version_gradle"
}

最后 在 Java 代码里面 就可以用了, 哈哈

String string1 = BuildConfig.STRING_1_FOR_JAVA;
String string2 = getString(R.string.string_2_from_properties);
String supportVersion = BuildConfig.SUPPORT_VERSION_FOR_JAVA;

参考资料: