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

Unity接入安卓SDK(3)厘清Gradle的版本

接入过程中,很多人遇到gradle的各种错误,由于对各种gradle版本的概念不甚了了,模模糊糊一顿操作猛如虎,糊弄的能编译通过就万事大吉,下次再遇到又是一脸懵逼。所以我们还是一起先厘清gradle的版本概念。

1 明晰概念

1.1 Gradle是什么

Gradle是一个开源的项目自动化构建工具。它基于特定的语言来声明项目设置,抛弃了基于XML的各种繁琐配置。

1.2 Gradle Plugin(Gradle插件)

全称应该叫Android Plugin for Gradle。其实就是为了使用Gradle构建Android应用,所封装的一个工具。是针对Gradle发行版和Android SDK Build Tools封装的一个工具。 主要有两大功能:

调用Gradle本身的代码和批处理工具来构建项目

调用Android SDK的编译、打包功能

1.3 Android SDK Build Tools(Android SDK 构建工具)

是构建Android 应用所需 Android SDK 的一个编译工具组件,安装在 /build-tools/ 目录中。

2 查看版本的方法

2.1 Gradle发行版本

常见的如:gradle-5.6.4-all.zip

在Android Studio项目中,查看文件gradle-wrapper.properties

文件路径:project的gradle 文件夹->wrapper->gradle-wrapper.properties

#Sat Oct 10 16:41:39 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

如上所示,项目所使用的Gradle的发行版本就是6.1.1

2.2 Gradle Plugin

方法1:在Android Studio中查看Project Structure属性面板,第一行是Gradle Plugin的版本,第二行是Gradle发行版本。
在这里插入图片描述

方法2:在在Android Studio项目中的 build.gradle 中,也可以看到对Gradle Plugin的版本依赖:

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

2.3 Android SDK Build Tools

在在Android Studio项目中,主Module的build.gradle文件中检索buildToolsVersion进行查看:

android {buildToolsVersion "29.0.3"...
}

3 gradle plugin、gradle plugin 和buildTools之间的关系

3.1 一句话概括

Gradle Plugin对Gradle发行版进行了封装,BuildTools使用Gradle Plugin辅助进行构建Android应用的工作。

3.2 三者的匹配关系

Gradle Plugin的每个版本号匹配一个或多个 Gradle发行版本号(一般是限定一个最低版本号)。如果这两个版本号匹配不正确,那么构建项目的时候就会报错。

如下表列出了各Android Gradle插件版本所需的Gradle版本。
在这里插入图片描述
最新的对应的关系请查看官网链接:https://developer.android.google.cn/studio/releases/gradle-plugin.html#updating-plugin

Gradle Plugin 还和 Android SDK BuildTools 有依赖,一般来说安装较新版本的SDK BuildTools即可。 可以使用 Android SDK 管理器下载该组件的最新版本。 如果不想使用默认版本,可在Module的build.gradle文件中使用buildToolsVersion进行指定 。

    android {buildToolsVersion "29.0.2"...}

相关文章:

  • 第六章.java集合与泛型
  • UML 状态图:解锁电子图书馆管理系统的高效设计
  • android的 framework 有哪些知识点和应用场景
  • 一键部署k8s之EFK日志收集系统
  • 在 Android 中实现通话录音
  • Flask API 项目 Swagger 版本打架不兼容
  • 02_Flask是什么?
  • Hadoop+Spark 笔记 2025/4/21
  • 【python实用小脚本系列】用Python让鼠标“动起来”:光标自动移动、自动点击、自动图象识别的小技巧
  • CSS 中实现 div 居中有以下几种常用方法
  • ADB -> pull指令推送电脑文件到手机上
  • 大数据学习(109)-Impala 和 Hive 之间的 SQL 差异
  • 机器学习 Day13 Boosting集成学习方法: Adaboosting和GBDT
  • Spark-SQL连接Hive总结及实验
  • 使用SystemWeaver生成SOME/IP ETS ARXML的完整实战指南
  • 23种设计模式-结构型模式之外观模式(Java版本)
  • C++std::map
  • 批量替换多个 Word 文档中的指定图片
  • Spark SQL核心解析:大数据时代的结构化处理利器
  • 奇怪的问题
  • GDP增长4.1%,一季度广东经济数据出炉
  • 江西省人大教育科学文化卫生委员会主任委员王水平被查
  • 花卉引流+商场促销,上海浦东用“花经济”带动“消费热”
  • 西藏艺术来到黄浦江畔,“隐秘之门”艺术展外滩三号开幕
  • 两日内连续施压,特朗普再次喊话美联储降息
  • 工作坊|早期左翼文学的多重张力与历史回响