当前位置: 首页 > news >正文

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

 

目录

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

gradle版本对应

build.gradle文件介绍

介绍

android闭包:

android闭包中有defaultConfig闭包:

android闭包中有buildTypes闭包:

release闭包中的具体内容:

dependencies闭包


 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版本对应

 

在这里插入图片描述
      

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模式

相关文章:

  • Android 开发 读取excel文件 jxl.jar包
  • RecyclerView的简单使用在activity和fragment中
  • 好用的dialog工具类,单例实现,普通的Dialog和Textview设置Int型
  • tabLayout实现viewPager+Fragment
  • Android控件绑定代码快速生成工具 ,Android 开发Invalid byte 2 of 2-byte UTF-8 sequence. Textview设置空格
  • Android 开发execel文件在内存和外存传递
  • Android 开发 sqllite文件查看,SqlLite文件查看步骤
  • GreenDao查询,Querying
  • 新版gradle 找不到 greendao 报错 android studio 怎样查看导报文件 怎样打开db文件 android greendao 工具类使用以及数据更新
  • android.content.res.Resources$NotFoundException: String resource ID #0x1
  • 通过Interface:fragment向activity传值
  • kotlin 基础语法
  • Kotlin 基本数据类型
  • Android写入文件电脑上看不到的原因
  • DexArchiveMergerException,Could not resolve all files for configuration,Failed to resolve: com.githu
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • CentOS 7 修改主机名
  • ESLint简单操作
  • Netty源码解析1-Buffer
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Python学习笔记 字符串拼接
  • SpringBoot几种定时任务的实现方式
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 不上全站https的网站你们就等着被恶心死吧
  • 区块链技术特点之去中心化特性
  • 设计模式 开闭原则
  • 设计模式(12)迭代器模式(讲解+应用)
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 学习JavaScript数据结构与算法 — 树
  • 一个SAP顾问在美国的这些年
  • 用Visual Studio开发以太坊智能合约
  • MPAndroidChart 教程:Y轴 YAxis
  • NLPIR智能语义技术让大数据挖掘更简单
  • 数据可视化之下发图实践
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (13)Hive调优——动态分区导致的小文件问题
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (十五)使用Nexus创建Maven私服
  • (一)基于IDEA的JAVA基础12
  • (转)ABI是什么
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET 材料检测系统崩溃分析
  • .Net 高效开发之不可错过的实用工具
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @开发者,一文搞懂什么是 C# 计时器!
  • [20150707]外部表与rowid.txt
  • [2016.7.Test1] T1 三进制异或
  • [BZOJ4566][HAOI2016]找相同字符(SAM)
  • [C++参考]拷贝构造函数的参数必须是引用类型