Android项目工程中的Gradle、compileSdkVersion、buildToolsVersion
1. Gradle
Gradle是一个依赖管理工具,也是一个编程框架。基于Groovy语言,面向Java应用为主,摒弃了基于XML的繁琐配置,采用的是一种基于Groovy的内部领域特定(DSL)语言,该工具可以完成app的编译打包等工作。
默认下载目录
Windows下会默认下载到如下路径:
C:\Users\用户名\.gradle\wrapper\dists
下载完成后,可以看到该目录下会有gradle-x.xx-all的文件夹,例如我现在就有如下几个版本的gradle文件。
项目中Gradle文件
一个完整的项目一般都包含如下几个与Gradle相关的文件:
app下的build.gradle
该gradle文件是Module的gradle配置文件,也是整个项目中最重要的gradle配置文件。
gradle下的gradle-wrapper.properties
在项目的gradle目录下主要有两个文件,主要看gradle-wrapper.properties这个文件下的内容:
#Tue Nov 28 15:51:05 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-3.3-all.zip
这里声明了gradle的目录和下载路径以及项目使用的gradle版本,这些默认值一般都不会改。如果想修改gradle版本,可以直接在这里修改,并点击Sync Now。
也可以到Project Structure(可以通过快捷键Ctrl+Alt+Shift+s进入)去查看和修改:
项目下的build.gradle
buildscript {
repositories {jcenter()
}
dependencies {classpath 'com.android.tools.build:gradle:2.3.3'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files
}
}allprojects {repositories {jcenter()}
}task clean(type: Delete) {delete rootProject.buildDir
}
这些代码都是自动生成的,通常情况下不需要修改这个文件中的内容。两处repositories闭包中都声明了jcenter(),jcenter是一个代码托管仓库,从而使得我们在项目中可以引用任何jcenter上的开源项目。dependencies闭包中使用classpath声明了一个Gradle插件,因为Gradle并不是专门为构建Android项目而开发的,Java、C++等很多种项目都可以使用Gradle来构建。如果想要使用Gradle来构建Android项目,则需要声明com.android.tools.build:gradle:2.3.3这个插件,其中,后面是插件的版本号。
项目下的settings.gradle
include ':app'
整个项目中的module工程,如果还有其他的module则按照’:module名称’的格式添加即可。
2. compileSdkVersion
编译SDK的版本。
下载路径:
compileSdkVersion的路径在你所安装SDK目录下的platforms下。
根据项目工程的需要,可以到app下的build.gradle去修改SDK版本。还可以进入如下界面去修改SDK的指定路径。
3. buildToolsVersion
构建工具的版本。
下载路径:
compileSdkVersion的路径在你所安装SDK目录下的build-tools下。
根据项目工程的需要,可以到app下的build.gradle去修改buildTools版本。
看别人的开源项目时,要确保gradle版本,buildTools版本以及 compile sdk 版本跟你本地一致,这样你就可以进行编译、打包、安装了。
本文参考了stormzhang的博文:
点击进入
Android项目工程中的Gradle、compileSdkVersion、buildToolsVersion相关推荐
- 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库到 Android Studio 工程 | 配置 build.gradle 构建脚本 )
文章目录 一.拷贝 lib7zr.so 动态库到 Android Studio 工程 二.配置 Module 下的 build.gradle 构建脚本 三.参考资料 一.拷贝 lib7zr.so 动态 ...
- Mac android原生工程中潜入react-native混合开发项目搭建
最近公司有意向要用react-native做开发,自己在去年的时候也接触过,不过没有深入探讨,这两天,抽出时间看了看,顺便看了一下文档,做了一个简易的dome,由于我本人用的mac os 系统,Mac ...
- java覆盖率怎么包含多个工程,在多项目工程中统计子工程的覆盖率
背景介绍 在前文中我们对如何在gradle编译体系的工程中加入Jacoco代码覆盖率统计的方法做了介绍,但是前文的方法仅能统计到主工程的代码覆盖率,而无法统计到库工程,其具体原因可以参考此文Issue ...
- Android 项目工程优化
随着项目工程越来越大,工程中的无用资源无用代码,也会随之增多,占据一定的空间,造成资源浪费 而Android 早已经为我们提供了这种工具Android Lint来检测我们的项目.Lint翻译过来是&q ...
- Android 项目工程目录简单介绍
**一..gradle文件夹.** android studio使用时自动生成的文件夹,开发者不用关心里面的内容,开发过程不会改这个文件夹内容,存放gradle构建脚本,可以理解为为 ...
- 在jenkins上配置Android项目(git管理,gradle构建)
1.安装插件 系统管理->管理插件,选择"可选插件"tab,在其中选择(通过右上方搜索进行筛选)git plugin, git client plugin, gitlab p ...
- Android项目同步,如何通过gradle任务同步Android项目?
而且我有3项任务:增量版本,内置的应用程序和发布应用内: increaseVersionCode assembleRelease crashlyticsUploadDistributionReleas ...
- 【Unity3D】Android Studio 工程中使用 Java 代码调用 Unity 的 C# 脚本 ( Java 中调用 UnityPlayer#UnitySendMessage 方法 )
文章目录 一. Java 调用 C# 依赖库准备 1.依赖库位置 2.unityLibrary 依赖库位置 二. Java 调用 C# 的 UnityPlayer#UnitySendMessage 方 ...
- vue项目工程中npm run dev 到底做了什么
npm install 安装了webpack框架中package.json中所需要的依赖 2.安装完成之后,需要启动整个项目运行,npm run 其实执行了package.json中的script脚本 ...
最新文章
- python多线程读取文件的问题_Python多线程同步---文件读写控制方法
- HDU-2044-一只小蜜蜂
- java 传参字符串数组_JAVA语言之okhttp传递数组参数
- HTTP Status 405 – Method Not Allowed HTTP method GET is not supported by this URL
- H5网页播放器播不了服务器上的mp4视频文件
- 机器学习03Logistic回归
- java 时间转中文_使用JScript把时间转成中文
- java 声明抽象方法_java – 类必须声明为abstract或实现抽象方法错误
- 线程中如何使用对象_在 Flink 算子中使用多线程如何保证不丢数据?
- mysql本周数据没有填充_MySql查询本周、本月、本年数据(没有数据则补全0)
- Spring事务方法与非事务方法执行相互调用不回滚,你踩过这个坑没?
- 《设计模式详解》行为型模式 - 模板方法模式
- JQuery所有版本及说明文档
- Sql Server数据库查询去重数据,并保留最新的数据,以及删除重复数据
- Python移植MATLAB的巴特沃斯滤波器,椭圆滤波器
- linux磁盘空间满如何清理,linux磁盘空间不足怎么办,磁盘清理方法
- C盘Windows XP,D盘Windows7,双系统安装纪录
- office2020与2016版的不同_office2016和office2019哪个版本好用?office2019新亮点
- 修改滚动条样式的方法
- SDB光猫虚拟服务器,折腾光猫/路由器[MIPS架构](1):用Samba服务器搭建家庭文件共享中心...