一、统一组件版本
实际开发中会遇到一些依赖冲突,同一个依赖,版本不同也可能导致编译出错,所以下面说一下项目中如何统一各种版本
- 项目根目录下创建一个配置文件取名为config.gradle(名字可以随意取),内容如下
//控制版本 ext { android = [ //统一配置编译SDK版本 compileSdkVersion: 28, //统一build tools 版本 buildToolsVersion: "28.0.3", //统一最低支持版本 minSdkVersion : 16, //统一目标版本 targetSdkVersion : 28, ] //统一各个组件版本 dependencies = [ constraint_layout : 'com.android.support.constraint:constraint-layout:1.1.3', recyclerview_v7: 'com.android.support:recyclerview-v7:28.0.0', appcompatV7: 'com.android.support:appcompat-v7:28.0.0', cardviewV7 : 'com.android.support:cardview-v7:28.0.0', supportV13 : 'com.android.support:support-v13:28.0.0', design : 'com.android.support:design:28.0.0', multidex : 'com.android.support:multidex:1.0.3', okhttp3 : 'com.squareup.okhttp3:okhttp:3.9.1' ] }
- 项目跟目录下的build.gradle 头部添加引用
//添加gradle apply from: "config.gradle"
- 需要使用的module 中使用如下
android { //设置compileSdkVersion compileSdkVersion rootProject.ext.android.compileSdkVersion //设置buildToolsVersion buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion versionCode 1 versionName "1" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) //添加V7依赖 implementation rootProject.ext.dependencies.appcompatV7 //添加约束布局 implementation rootProject.ext.dependencies.constraint_layout //添加okhttp3 implementation rootProject.ext.dependencies.okhttp3 }
二、提高价值速度
现在如果没有梯子,有时候某些依赖无法下载导致编译失败耽误时间,阿里提供了一些依赖供广大开发者使用,感恩阿里。
阿里镜像地址:点击跳转
下面举个例子,添加jcenter镜像
- 打开项目根目录下gradle文件,buildscript==>repositories和allprojects==>repositories的jcenter()后做出如下修改:
buildscript { repositories { google() jcenter(){ url 'https://maven.aliyun.com/repository/jcenter' } } dependencies { ... } } allprojects { repositories { google() jcenter() { url 'https://maven.aliyun.com/repository/jcenter' } } }