build.gradle文件介绍,gradle版本对应

简介: build.gradle文件介绍,gradle版本对应

Could not find com.android.tools.build:gradle:3.0.1.


在项目的build.gradle中加入google 两个位置啊;下图

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        google()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

gradle版本对应


image.png

build.gradle文件介绍


对于以前用Eclipse开发安卓的小伙伴来说,Gradle文件是陌生的。


不同于Eclipse,而Android Studio 是采用Gradle来构建项目的。


先来介绍最外层目录下的build.gradle文件,代码如下:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

在repositories闭包中:


jcenter() :它是一个代码托管仓库,很多的Android开源项目都会选择将代码托管到jcenter上,声明了这行配置后,我们就可以在项目中轻松使用任何的jcenter上的开源项目了


在repositories闭包中:


classpath 'com.android.tools.build:gradle:2.2.2' 声明了一个Gradle插件。gradle:2.2.2为Gradle插件的版本号。


下面来介绍app目录下的build.gradle文件,代码如下:

apply plugin: 'com.android.application'

    android {
        compileSdkVersion 24
        buildToolsVersion "24.0.2"
        defaultConfig {
            applicationId "com.androidtest"
            minSdkVersion 15
            targetSdkVersion 24
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

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

介绍


第一行的apply plugin: 代表着应用了一个插件。一般来说有两个值可选。


  1. com.android.application 表示这是一个应用程序模块。  都是module
  2. com.android.library 表示是一个库模块。


区别:


com.android.application是代表可以直接运行的,

com.android.library是只能作为代码依附在别的应用程序模块来运行。所以在引入一些

Model为自己的应用程序所用时,build.gradle文件的第一行就是apply plugin:com.android.library。


android闭包:


compileSdkVersion: 用于指定项目的编译版本。这里24表示使用Android7.0系统的SDK进行编译。

buildToolsVersion: 用于指定项目的构建工具的版本。


android闭包中有defaultConfig闭包:


applicationId: 用于指定项目的包名,在创建项目的时候已经指定了包名,当要改变整个项目的包名时可以在这里改变。


minSdkVersion: 项目最低的兼容版本。15表示兼容到API 15 既是android 4.0.


targetSdkVersion: 表示你在该目标版本上已经做过了充分的测试,系统将为你的应用开启一些最新的功能和特性。假如targetSdkVersion 为23或者更高,那么在Android6.0中运行这个应用时会开启新的功能和特性;但是设置成了22的话,只能说明你的应用程序在Android5.1系统上做过了充分的测试,Android6.0的新功能就不会启用了。


注意


在以前eclipse中设置这些都是AndroidManifest.xml文件中设置的。

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

而在Android Studio中,即使在AndroidManifest.xml设置了,依然是不起作用的,运行时只承认build.gradle下的设置。


versionCode: 项目的版本号


versionName: 项目版本号的版本名。


这两个属性在生成安装文件时用到。


android闭包中有buildTypes闭包:


通常这个闭包中会有两个闭包,一个是debug,一个release。


debug闭包用于生成测试版安装文件的配置,release闭包用于生成正式版安装文件的配置。dubug闭包可以忽略不写。


release闭包中的具体内容:


minifyEnabled: 用于是否对项目的代码进行混淆。true代表开启,false代表关闭。

proguardFiles: 指定混淆时使用的文件。

proguard-android.txt: 在Android SDK 目录下的,里面是所有项目通用的混淆规则。

proguard-rules.pro: 是在当前项目根目录下的,里面编写当前项目特有的混淆规则。


dependencies闭包


在这个闭包下可以指定当前项目所有的依赖关系。通常Android Studio 项目中一共有三种依赖方式:

本地依赖、库依赖和远程依赖。


本地依赖可以对本地的Jar包或目录添加依赖关系

库依赖可以对项目中的库模块添加依赖关系。

远程依赖则可以对jcenter库上的开源项目添加依赖关系。


在本项目中的第一行 compile fileTree(dir: 'libs', include: ['*.jar']) 就是本地依赖声明,他把libs目录下的所以.Jar后缀文件全部添加带项目的构建路径中去。同时也可以只指定一个文件,例如:compile files('libs/picasso-2.4.0.jar')


在本项目中并没有使用到库依赖。库依赖的基本格式为 compile project后面加上依赖库的库名称,例如gallery为库名称,那么compile project(':gallery')就能添加这个库的依赖关系。


在本项目中的第二行 ** compile 'com.android.support:appcompat-v7:23.4.0'**这种声明是远程依赖声明。因为是用远程的库,所以Gradle在构建项目的时候会检查一下本地仓库是否已经缓存了,如果没有就自动联网下载,然后再添加到项目的构建路径中去。


远程依赖时每次都要检查是否有这个缓存,所以使编译变的很慢。可以设置成离线的Gradle模式。


目录
相关文章
|
2月前
|
Java Spring
Gradle 如何确保依赖的版本兼容性
Gradle 通过依赖管理机制确保版本兼容性,使用声明式配置定义项目依赖,自动解析和下载所需库。它支持版本范围和动态版本,通过冲突解决策略选择最佳版本,保证构建的一致性和可靠性。
|
4月前
|
IDE API 开发工具
与Android Gradle Plugin对应的Gradle版本和Android Studio版本
与Android Gradle Plugin对应的Gradle版本和Android Studio版本
467 0
|
6月前
|
Android开发
Android Gradle开发—脚本实现自动打包后复制一份APK文件,并修改APK名称,到指定目录作备份
Android Gradle开发—脚本实现自动打包后复制一份APK文件,并修改APK名称,到指定目录作备份
304 0
|
7月前
|
Java 开发工具 Android开发
Android Studio Gradle文件解释其作用
Android Studio Gradle文件解释其作用
111 2
|
7月前
|
Java 测试技术 API
云效流水线构建gradle项目失败提示gradle版本过低如何解决
云效(CloudEfficiency)是阿里云提供的一套软件研发效能平台,旨在通过工程效能、项目管理、质量保障等工具与服务,帮助企业提高软件研发的效率和质量。本合集是云效使用中可能遇到的一些常见问题及其答案的汇总。
332 0
|
Unix Linux iOS开发
在EMAS上,您可以使用脚本来获取build.gradle文件中的versionName
在EMAS上,您可以使用脚本来获取build.gradle文件中的versionName
67 7
EMAS平台不支持Gradle 8.0以上版本
EMAS平台不支持Gradle 8.0以上版本
92 7
|
7月前
|
Java Maven 数据安全/隐私保护
Gradle笔记 三 Gradle的项目周期和settings 文件
Gradle笔记 三 Gradle的项目周期和settings 文件
91 0
Gradle笔记 三 Gradle的项目周期和settings 文件
|
人工智能 移动开发 Java
Android Studio插件版本与Gradle 版本对应关系
Android Studio插件版本与Gradle 版本对应关系
2426 0
Android Studio插件版本与Gradle 版本对应关系
|
存储 Java Android开发
Android 开发 - 充分利用Gradle
Android 开发 - 充分利用Gradle
173 2