当前位置: 首页 > 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"...}
http://www.xdnf.cn/news/57691.html

相关文章:

  • AI助理iOS开发:Copilot for Xcode 下载与安装全指南
  • Java 自动装箱与拆箱:基本数据类型与包装类的转换
  • Ansys electronics安装多版本simulink打开s-function冲突解决方法
  • 用Mac M4构建多架构Docker镜像指南
  • CSS 中实现 div 居中有以下几种常用方法
  • 解决Chrome浏览器访问https提示“您的连接不是私密连接”的问题
  • Android 15强制edge-to-edge全面屏体验
  • (7)NodeJS的使用与NPM包管理器
  • 1.2软考系统架构设计师:系统架构的定义与作用 - 练习题附答案及超详细解析
  • 23种设计模式-结构型模式之外观模式(Java版本)
  • Spark和Hadoop的区别和联系
  • 深入理解 DML 和 DQL:SQL 数据操作与查询全解析
  • Java BIO、NIO、AIO、Netty面试题(已整理全套PDF版本)
  • 【NVIDIA】Isaac Sim 4.5.0 加载 Franka 机械臂
  • CMake execute_process用法详解
  • 【Spring Boot基础】MyBatis的基础操作:日志、增删查改、列名和属性名匹配 -- 注解实现
  • 使用 inobounce 解决 iOS 皮筋效果导致的无法下拉刷新
  • pytest-项目结构
  • 管道位移自动化监测方案
  • neo4j-community-3.5.5-unix.tar.gz安装
  • leetcode 647. Palindromic Substrings
  • 从规则到大模型:知识图谱信息抽取实体NER与关系RE任务近10年演进发展详解
  • DSRAM介绍
  • 美创科技20周年庆典顺利举行
  • npm -v npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。来看看永久修改执行策略!
  • Pytorch的极简transformer用于时间序列预测
  • 负载均衡与实时调度—LSF
  • 精益数据分析(10/126):深度剖析数据指标,驱动创业决策
  • 硬件测试项之电源纹波的测量和纹波的要求、纹波的抑制
  • Uniapp:pages.json页面路由