Android 项目编译 Gradle 配置说明

简介: Android 项目编译 Gradle 配置说明

前言


  Android 的Gradle版本更新换代还是很快的,更新换代除了功能上变得强大之外,还会出现很多意料之外的Bug,而很多开发者会被折磨的死去活来,下面我们来看有哪些编译配置。


正文


  首先要知道什么时候会进行编译,有以下几种情况:

  • 创建新项目。
  • 打开老项目。
  • 打开别人的项目。


   这几种情况基本上囊括了大部分实际场景,如果有没有说到的部分,欢迎评论区进行补充,编译的环境主要是Android Studio,用Eclipse或者IDEA进行开发编译的,我没有用过,就没有发言权,抱歉。


一、创建新项目

  通过Android Studio创建新项目,会根据你的Android Studio的版本去创建适合当前版本的项目,这里就会自动给你配置Gradle版本和Gradle插件版本,那么到了这里你可能会问,什么是Gradle版本?什么是Gradle插件版本?它们在哪里?


1. Gradle版本

  在回答之前,假定你已经对Android 的工程项目结构了解了,那么我们首先打开gradle-wrapper.properties,如下图所示:

80c1786ddbfd464583d7a717887f7998.png

  这里我标注的是gradle-7.0-bin.zip,这个7.0就是Gradle版本,Gradle和Gradle插件都是用于编译Android 项目的。


2. Gradle插件版本

  打开工程目录下的build.gradle,如下图所示:

c01f0eaec97b40b28329ad19fd250ee9.png

  你会看到顶部这里有一个plugins,标识插件,然后我标注出来的7.0.0就是Gradle的插件版本。我现在用的Android Studio版本是Android Studio Electric Eel | 2022.1.1,通过此版本创建出来的项目,Gradle版本是7.5,Gradle插件版本是7.4.0


  Gradle和Gradle插件的版本和你的Android Studio是有关系的,首先我们看一下Gradle和Gradle插件之间的对应关系,如下表所示:


3. Gradle插件和Gradle版本对应表

Gradle插件版本 所需的最低 Gradle 版本
8.1 8.0
8.0 8.0
7.4 7.5
7.3 7.4
7.2 7.3.3
7.1 7.2
7.0 7.0
4.2.0+ 6.7.1
4.1.0+ 6.5+
4.0.0+ 6.1.1+
3.6.0 - 3.6.4 5.6.4+
3.5.0 - 3.5.4 5.4.1+
3.4.0 - 3.4.3 5.1.1+
3.3.0 - 3.3.3 4.10.1+
3.2.0 - 3.2.1 4.6+
3.1.0+ 4.4+
3.0.0+ 4.1+
2.3.0+ 3.3+
2.1.3 - 2.2.3 2.14.1 - 3.5
2.0.0 - 2.1.2 2.10 - 2.13
1.5.0 2.2.1 - 2.13
1.2.0 - 1.3.1 2.2.1 - 2.9
1.0.0 - 1.1.3 2.2.1 - 2.3


  这里面我对应5.4.1、5.6.4和6.7.1这几个版本还是很熟悉的,应该是Android Studio 3.5.2、3.6、4.1版本的对应Gradle。


4. Android Studio版本与Gradle插件对应表

  Android Studio 构建系统以 Gradle 为基础,并且 Android Gradle 插件添加了几项专用于构建Android 应用的功能。下表列出了各个 Android Studio 版本所需的 Android Gradle 插件版本。

Android Studio 版本 所需插件版本
Giraffe l 2022.3.1 3.2-8.1
Flamingo l 2022.2.1 3.2-8.0
Electric Eel l 2022.1.1 3.2-7.4
Dolphin l 2021.3.1 3.2-7.3
Chipmunk l 2021.2.1 3.2-7.2
Bumblebee l 2021.1.1 3.2-7.1
Arctic Fox l 2020.3.1 3.1-7.0


二、打开老项目


  Android Studio中的项目每一次在打开项目的时候就会检查当前的Gradle编译环境,如果你之前的项目是正常编译的,而你很长时间没有再打开过这个项目,那么当你再次打开项目时,就会先检查Gradle环境、SDK环境,如果没有,则会根据当前项目的配置进行下载,下载的时候可能网络会出现一些问题,例如:连接超时Socket方式失败下载失败长时间响应

  遇到这些问题不要慌,首先再多尝试几次,Try Again,你就跟它耗,事不过三,超过三次没有反应,就不要头铁了,我们曲线救国,更换一个网络环境,例如换一个WIFI,或者手机开一个热点,电脑连上,然后再重新编译或者Try Again,还有一种方式是使用阿里云的仓库,这里面就是国内访问的,可能比较快,我也是听说,我没有这么用过,因为我一般更换网络之后就搞定了,脸黑的话就试一下第三个吧,问题总能解决,重点在于自己的心态要平和,不要暴躁。


三、打开别人的项目


  很多时候我们会打开别人的项目,比如开发过程中遇到一个技术点,发现没有头绪,百度上一顿搜索,看到有一个功能差不多的Demo,点进去一看,发现转载,然后又去找原文,原文上一看,豁,源码下载还要积分,然后呢?换一个再找,找到一个有贴源码的,在GitHub上,下载之后,用Android Studio打开,这时候就会有三种情况:

  • 项目版本与当前环境一致
  • 项目版本比当前环境低
  • 项目版本比当前环境高


1. 项目版本与当前环境一致

  第一种情况,是有的,但是比较少,从我上面列出来的Gradle、Gradle插件、Android Studio版本,你就知道,这个概率不会太高,碰到了就当你今天中彩票了,那就可以当本地项目来运行了,因为环境一致,别人项目所需要的你本地都有,那只要编译一下,就能够运行了,这不是节省很多时间吗,不过可遇不可求。


2. 项目版本比当前环境低

  第二种情况,就是别人的项目环境,所配置的SDK版本低于你当前环境的版本,这种情况建议你更新项目的Gradle版本和Gradle 插件版本,一般来说你编译这种项目,Android Studio是可以给你提示的,例如我前面截图中的7.0版本Gradle,和7.0.0版本Gradle插件,那么编译就会出现下面这种情况。

c7ddd0ed5f2d4f80843cd11114f17115.png

  这里的错误信息就告诉你了,当前最低支持Gradle版本为7.0.2,而你的是7.0,因此让你在Gradle wrapper中更改Gralde版本为 7.0.2。你直接点击一下这行提示:Change Gradle version inGradle wrapper to 7.0.2 and re-import project,然后就会下载7.0.2版本Gradle,下载好之后就会进行编译,我是编译成功了,如果你编译失败,可以贴一下失败的错误日志。


3. 项目版本比当前环境高

  第三种情况,就是别人的项目环境,所配置的SDK版本高于你当前环境的版本,这种情况,你先尝试一下你的Android Studio能不能编译,如果能编译应该也会下载项目所需要的编译环境,然后再进行编译,如果失败了,或者提示你当前的AS版本较低无法编译的话,你就需要思考一个问题了,就是本地的AS环境能不能更新,因为你可能还有别的项目需要使用当前的环境,为了一个项目更改所有项目的环境,好像有一点不值得,那么就要选择另一个方案,降低别人的项目环境版本,降低到足以在当前Android Studio中正常编译运行就可以了,如果不清楚自己当前的环境版本,可以打开之前的项目,看一下我上面提到的两个文件,去看一下具体的版本信息是多少,然后去更改别人的项目版本,再进行编译,这样来说改动最小。

  如果你在开发中遇到什么编译问题,是本文中没有提到的,欢迎在评论中提出。

相关文章
|
2月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
118 1
|
2月前
|
Android开发
Android基于gradle task检查各个module之间资源文件冲突情况
Android基于gradle task检查各个module之间资源文件冲突情况
Android基于gradle task检查各个module之间资源文件冲突情况
|
2月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
110 2
|
25天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
49 6
|
2月前
|
Android开发
Android gradle task任务检查各个module之间资源文件冲突.md
Android gradle task任务检查各个module之间资源文件冲突.md
Android gradle task任务检查各个module之间资源文件冲突.md
|
2月前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
47 2
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
97 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
2月前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
人工智能 移动开发 Java
Android Studio插件版本与Gradle 版本对应关系
Android Studio插件版本与Gradle 版本对应关系
2426 0
Android Studio插件版本与Gradle 版本对应关系
|
存储 Java Android开发
Android 开发 - 充分利用Gradle
Android 开发 - 充分利用Gradle
173 2