gradle问题总结与理解(一篇文章带你理解android studio 与gradle 的关系)
前言:近日在网上找了个很不错的安卓二维码美化,由于下载的项目经常出问题,且不方便依赖使用,因此我想把它写个demo,并把源码发布到jcenter中,修改还是很顺利的,运行项目到手机也没问题,发布遇到了问题
1.运行gradle install ,提示:Minimum supported Gradle version is 4.6 Current version is4.1 这个错误,改了半天项目还是不行
首先是要弄懂gradle 与studio关系,请看这里 https://www.jianshu.com/p/f4b43fc3c33f
按照上边所述,改了还是不可以不过我得到了如下结论:
as 版本(即help下的About) 这个版本号就是项目的的build.gradle 中的3.2.1 这里一般要一致,一旦as升级,打开项目后这里就会升级到对应的版本号
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
}
上述讲的as 实际上可以理解为是gradle的一个插件,对gradle进行了封装,项目中有个gradle中的wrapper文件夹名字是就能体现出来,一旦插件版本升级,插件需要的环境版本不一样,那么就会下载
而当前插件需要的gradle 版本会在项目的gradle文件下 wrapper 的gradle-wrapper.properties中体现
如下:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
这里主要是描述了下载gardle 下载后解压位置,以及下载位置等
distributionUrl这里的4.6-all就是当前使用的gradle版本如果没有会联网下载,如果国内下载慢可以用其他方式下载下来后放到自己
C:/Users/用户/.gradle/wrapper/dists/ 下即可(这里是所有gradle 下载,或使用过的版本)
因为as 和gradlew 是有对应的,所以如果修改 build:gradle:3.2.1 的版本也需要修改,因为不一致会导致构建失败等问题
而android studio 各个版本对应gradle 版本百度会有人总结,但是可能不是最新的,因此官方的是最权威且最新的
国内地址如下 https://developer.android.google.cn/studio/releases/gradle-plugin
到此为止我们仅仅知道了as 与gradle 的关系那么下载更新后错误还在因此我们还需要找。
我们找到了as settings的 gradle的环境(如下图)这里之前显示的是4.1,因此感觉找到问题了;修改为4.6后,发现运行命令问题还是存在。
其实这里这配置的是告诉as 当前gradle运行环境路径,这里是我们点击运行、debug、打包等时候 as 使用的gradle版本的环境。
此刻忽然明白了原因,此时在运行命令行,gradle -v 发现果然返回的版本是4.1 而不是配置的最新的4.6
也就是说我们修改as gradle home是仅修改了as 运行环境的位置;
而命令行的配置环境是旧版本的4.1,到此刻为止问题根源彻底找到了
解决方案:
修改自己的系统环境的gradle版本的环境变量即可
到此为止问题彻底解决;可以发布了!!!
本次折腾彻底明白了as 与gradle 的关系;在此记录一下,时至今日as 用了两年了对其还是一知半解
还是自己太菜了。本文章目的是为了记录本次波折,防止其他同学像我一样折腾
博客让我们成长,让我们砥砺前行!记录自己的成长瞬间!
最后,感谢下文作者
https://www.jianshu.com/p/f4b43fc3c33f