AndroidStudio、gradle、buildToolsVersion关系

China☆狼群 提交于 2019-11-28 23:40:35

使用AndroidStudio 开发也已经2年了,每次gradle 或者studio 有推荐更新后,项目重新sync后都会报错,提示更新相应的其他版本,比如AndroidStudio、gradle、buildToolsVersion版本;

先来说说概念

AndroidStudio: 是Google官方基于IntelliJ IDEA开发的一款Android应用开发工具,,类似之前的eclipse,但是比eclipse 强大很多,推荐使用;

Gradle:是一个工具,同时它也是一个编程框架。使用这个工具可以完成app的编译打包等工作;

buildToolsVersion: android构建工具的版本,其中包括了打包工具aapt、dx等等。这个工具的目录位于..your_sdk_path/build-tools/XX.XX.XX,通过SDK Manager 更新; 
comileSdkVersion:编译版本,就是运行我们这个项目的需要的android SDK版本;

comileSdkVersion 和buildToolsVersion区别

新建一个项目,看build.gradle文件的配置,如下:

build.gradle

CompileSdkVersion:是告诉gradle 用哪个SDK版本来编译,和运行时要求的版本号没有关系;使用任何新添加的 API 就需要使用对应 Level 的 Android SDK。

buildToolsVersion: android构建工具的版本,在SDK Manager中安装选择版本,buildToolsVersion的版本需要>=CompileSdkVersion; 高版本的build-tools 可以构建低版本编译的android程序;

SDK Manager

gradle版本和com.android.tools.build:gradle配置的版本关系

之前会奇怪,为什么一更新gradle 插件版本,会报错 
如下图,红色部分配置的就是android gradle 插件的版本,gradle插件的版本号和gradle版本号是对应的,较新的插件版本需要要求较新版的gradle,所以提示你更新gradle; 

 

1. 问题描述:

android studio中,新导入一个android项目,编译错误如下:

Error:Could not find com.android.tools.build:gradle:3.3.
Searched in the following locations:
    file:/D:/as231/gradle/m2repository/com/android/tools/build/gradle/3.3/gradle-3.3.pom
    file:/D:/as231/gradle/m2repository/com/android/tools/build/gradle/3.3/gradle-3.3.jar
    https://repo1.maven.org/maven2/com/android/tools/build/gradle/3.3/gradle-3.3.pom
    https://repo1.maven.org/maven2/com/android/tools/build/gradle/3.3/gradle-3.3.jar
Required by:
    project :

 

2. 分析与解决:

很显然,是gradle版本没有找到。查看本地目录,的确没有“D:/as231/gradle/m2repository/com/android/tools/build/gradle/3.3/”。

只有一个2.3.1的目录。于是,将build.gradle中相关的classpath改为2.3.1,问题解决。如下图:

 

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.1'
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!