在使用Android studio Android開發中Gradle通常會遇到很多相同的配置例如在不同的module中都要配置相同的compileSdkVersion、buildToolsVersion等
這時我們可以定義一個共享變量統一他們的配置,防止不同module因為配置不同而導致的一些兼容性問題,或一些其他bug
一、定義共享變量
在工程根目錄創建一個名為common_config.gradle的文件
文件內容舉例
project.ext{ //java相關 java_version=8 java_max_heap_size=4G //JDK版本兼容 source_compatibility = this.&getJavaVersion() target_compatibility = this.&getJavaVersion() //kotlin 版本‘ kotlin_version = '1.3.41' //Android編譯相關版本 compile_sdk_version =28 build_tools_version ='28.0.3' min_sdk_version= 16 target_sdk_version =29 //混淆相關 minify_enabled =false } def getJavaVersion(){ switch (project.ext.java_version){ case "6": return JavaVersion.VERSION_1_6 case "7": return JavaVersion.VERSION_1_7 case "8": return JavaVersion.VERSION_1_8 } }
二、引入通用配置
apply from:"${project.rootDir}/common_config.gradle"
示例:
buildscript { //引入通用配置 apply from:"${project.rootDir}/common_config.gradle" repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.5.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" //small 插件框架 // classpath 'net.wequick.tools.build:gradle-small:1.1.0-alpha2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } ......
三、在Module中使用這個通用配置
示例:
compileSdkVersion compile_sdk_version buildToolsVersion build_tools_version defaultConfig { applicationId "com.jelly.smalldemo" minSdkVersion minSdkVersion targetSdkVersion targetSdkVersion versionCode 1 versionName "1.0.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" applicationIdSuffix =kotlin_version } buildTypes { release { minifyEnabled minify_enabled proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }
