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
gradle问题总结与理解(一篇文章带你理解android studio 与gradle 的关系)的更多相关文章
- MYSQL(进阶篇)——一篇文章带你深入掌握MYSQL
MYSQL(进阶篇)--一篇文章带你深入掌握MYSQL 我们在上篇文章中已经学习了MYSQL的基本语法和概念 在这篇文章中我们将讲解底层结构和一些新的语法帮助你更好的运用MYSQL 温馨提醒:该文章大 ...
- 一篇文章带你掌握主流基础框架——Spring
一篇文章带你掌握主流基础框架--Spring 这篇文章中我们将会介绍Spring的框架以及本体内容,包括核心容器,注解开发,AOP以及事务等内容 那么简单说明一下Spring的必要性: Spring技 ...
- 一篇文章助你理解Python3中字符串编码问题
前几天给大家介绍了unicode编码和utf-8编码的理论知识,以及Python2中字符串编码问题,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系和一篇文章助你理解 ...
- MYSQL(基本篇)——一篇文章带你走进MYSQL的奇妙世界
MYSQL(基本篇)--一篇文章带你走进MYSQL的奇妙世界 MYSQL算是我们程序员必不可少的一份求职工具了 无论在什么岗位,我们都可以看到应聘要求上所书写的"精通MYSQL等数据库及优化 ...
- 一篇文章带你掌握主流数据库框架——MyBatis
一篇文章带你掌握主流数据库框架--MyBatis MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射. 在之前的文章中我们学习了MYSQL和JDBC,但是这些东西远远不 ...
- 一篇文章带你掌握主流服务层框架——SpringMVC
一篇文章带你掌握主流服务层框架--SpringMVC 在之前的文章中我们已经学习了Spring的基本内容,SpringMVC隶属于Spring的一部分内容 但由于SpringMVC完全针对于服务层使用 ...
- 一篇文章带你掌握主流办公框架——SpringBoot
一篇文章带你掌握主流办公框架--SpringBoot 在之前的文章中我们已经学习了SSM的全部内容以及相关整合 SSM是Spring的产品,主要用来简化开发,但我们现在所介绍的这款框架--Spring ...
- 一篇文章带你掌握MyBatis简化框架——MyBatisPlus
一篇文章带你掌握MyBatis简化框架--MyBatisPlus 我们在前面的文章中已经学习了目前开发所需的主流框架 类似于我们所学习的SpringBoot框架用于简化Spring开发,我们的国人大大 ...
- 一篇文章带你了解网页框架——Vue简单入门
一篇文章带你了解网页框架--Vue简单入门 这篇文章将会介绍我们前端入门级别的框架--Vue的简单使用 如果你以后想从事后端程序员,又想要稍微了解前端框架知识,那么这篇文章或许可以给你带来帮助 温馨提 ...
随机推荐
- BZOJ 2333 棘手的操作(离线+线段树+带权并查集)
这题搞了我一天啊...拍不出错原来是因为极限数据就RE了啊,竟然返回WA啊.我的线段树要开8倍才能过啊... 首先可以发现除了那个加边操作,其他的操作有点像线段树啊.如果我们把每次询问的联通块都放在一 ...
- 用select模拟一个socket server成型版
1.你往output里面放什么,下次循环就出什么. 2. 1.服务器端:实现了收和发的分开进行 import select,socket,queue server=socket.socket() s ...
- 事件驱动与异步IO--待更新
论事件驱动与异步IO 通常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求: (2)每收到一个请求,创建一个新的线程,来处理该请求: (3)每收到 ...
- PowerDesigner 建表语句没出现字段描述
填写了Name 还是没有 修改步骤如下:
- 函数strcpy的实现
strcpy函数的百科中给出了各种情况的详细说明,这里,仅给出一些注意事项: 1.strcpy的函数原型是: /* dest(destination)为目标字符串,src(source)为原字符串*/ ...
- UVA.10986 Fractions Again (经典暴力)
UVA.10986 Fractions Again (经典暴力) 题意分析 同样只枚举1个,根据条件算出另外一个. 代码总览 #include <iostream> #include &l ...
- HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)
HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化) 题意分析 给出一系列的石头的数量,然后问石头能否被平分成为价值相等的2份.首先可以确定的是如果石头的价值总和为奇数的话,那 ...
- [LOJ 6004] 圆桌聚餐
link 其实网络流就是再考你如何去建边. 先见$S$,$T$为源点与汇点,然后将$S$连向每一个单位,流量为每个单位的人数,然后将每一个单位连向每一个餐桌,流量为$1$,最后在将每一个餐桌与$T$相 ...
- JavaScript截取中英文字符串
有时在显示某段文字的时候,可能会太长,影响我们页面的显示效果.如果仅是英文,那么我们可以用String.substring(start, end)函数就已经够用了.但是通常我们都会遇到既有英文,又有汉 ...
- Codeforces Round #394 (Div. 2)A水 B暴力 C暴力 D二分 E dfs
A. Dasha and Stairs time limit per test 2 seconds memory limit per test 256 megabytes input standard ...