android studio项目打包无法勾选v1 、v2 引出的解决项目中gradle版本替换时问题

问题:由于导入的是别人的安卓项目在打包的的时候不能勾选v1 v2选项,经过查询是因为gradle版本低的原因.
需要更换gradle高级版本和插件的版本(更换了gradle就会自动更换?)

参照:android studio3.0 打包签名 v1,v2 不可勾选(http://blog.sina.com.cn/s/blog_a66e1c460102x8fx.html)

查看你项目当前的gradle版本:
切换到安卓视图,点击Gradle Scripts目录下的gradle-wrapper.properties文件查看
distributionUrl属性,看最后,我的版本是gradle-2.14.1-all
在这里插入图片描述

在这里插入图片描述

解决办法:更换项目中的gradle版本

1、下载gradle
http://services.gradle.org/distributions/ 在这个网址可以下载到gradle最新版本,选择 gradle- 版本号-all.zip的 ,比如 gradle-4.10.2-all.zip。

关注一个问题:Android Studio gradle插件版本和gradle版本对应关系(https://www.cnblogs.com/diyishijian/p/7751407.html),并不是直接下载最新的版本就是最好的,选择适合你编译器的版本的。

我的Android Studio版本 : Android Studio 3.3 Beta 3
我下载的gradle版本:gradle-4.10.2-all.zip

区分gradle的3个版本:

  1. gradle-xx-all.zip是完整版,包含了各种二进制文件,源代码文件,和离线的文档。例如,
    gradle-3.3-all.zip

  2. gradle-xx-bin.zip是二进制版,只包含了二进制文件(可执行文件),没有文档和源代码。例如,gradle-3.3-bin.zip

  3. gradle-xx-src.zip是源码版,只包含了Gradle源代码,不能用来编译你的工程。例如,

gradle-3.1-src.zip
但我们一般下载的都是 -all

2. 将下载好的gradle的zip压缩文件保存在自定义路径 下
比如我的:D:\Android\Gradle\gradle-4.10.2-all ,不要解压
在这里插入图片描述
3、设置
在AS中打开你的项目,file ==> setting ==> Build,Execution,Deployment ==>Gradle
默认是使用 “Use default gradle wapper(recommended)”,还有下面的 offline work 本地离线工作目录,勾选的话默认是在你的C:/Users/ASUS/.gradle这个目录下去找有没有你定义的gardle版本,如果在这个目录下存在你定义gradle版本(gradle-wrapper.properties文件中定义的),就直接使用,没有的话就会去下载,有的时候比较慢,不推荐。

3.1 修改gradle-wrapper.properties文件 中的版本号,点击右上角的 Sync Now 让AS自动下载
不推荐,会比较慢,
在这里插入图片描述
在这里插入图片描述

这种方法会出现很多问题:
1、有的人让你修改 build.gradle不要修改,下载好了和你as版本对应的gradle后会自动修改的
classpath ‘com.android.tools.build:gradle:2.2.3’
在这里插入图片描述
2、修改 build.gradle这个文件后会出现 xxx.-gradle版本号.pom 、xxx…-gradle版本号.jar的问题(解决办法往下看)

在这里插入图片描述

3、出现 Gradle plugin版本太低需要重新下载 Gradle plugin (解决办法往下看)
在这里插入图片描述

3.2 针对当前项目单独设置 :file ==> setting ==> Build,Execution,Deployment >Gradle>Use local gradle distribution ==>选择你下载的gradle压缩文件目录
将你下载下来的gradle版本解压到某一个目录下:D:\Android\Gradle\gradle-4.10.2-all
在这里插入图片描述
在这里插入图片描述

打开as工程,切换到 Android 视图,找到 Gradle Scripts ,找到gradle-wrapper.properties 文件gradle-wrapper.properties 这个文件是专门用来管理gradle 的配置文件 将其中的distributionUrl 一项修改为 第二步中路径 :distributionUrl=file:///D:/Android/Gradle/gradle-4.10.2-all/gradle-4.10.2/gradle-4.10.2-all.zip

同步一下 或关闭工程重新打开 离线配置gradle就完成了,会自动文件解压到C:\Users\ASUS.gradle\wrapper\dists\ 你当前版本 目录下。
在这里插入图片描述
依然会出现让你更新gradle plugin
在这里插入图片描述

至此 引出一个问题:
gradle插件,gradle这是两个名词:
Android的构建系统使用Gradle来构建应用**.Gradle是一种构建工具**,如何来提供这个Gradle构建环境呢?这就需要通过安装Gradle插件来使系统能支持运行Gradle.安装Android Studio后就已经帮我安装了Gradle插件.但Gradle插件是独立于Android Studio运行的,所以它的更新也是与Android Studio分开的.
参照:Androidstudio gradle 插件和 gradle 区别及更新(https://blog.csdn.net/shi_xin/article/details/80393771)
同样也就说明了我们需要单独下载gradle 、gradle plugin两个版本对应情况:
Android Studio gradle插件版本和gradle版本对应关系(https://www.cnblogs.com/diyishijian/p/7751407.htmlhttps://developer.android.google.cn/studio/releases/gradle-plugin.html#updating-plugin [官网])

从下表可以看出来,我们下载的gradle是 gradle-4.10.2-all 的,那么gradle plugin的版本 对应的是3.3.0-3.3.2(也可以更高)
我的:
gradle: gradle-4.10.2-all
gradle plugin: 3.3.0

在这里插入图片描述

同时也说明了3.1 下第三个问题的确是需要更新gradle plugin的版本。(稍后说)
至于3.1下第二个问题:我们根据上标修改了build.gradle 中的版本号还是报错 xxx.pom、xxx.jar的问题,点击后发现可能不点访问(实际可能是网址错误),在该文件中找到是因为没有 添加google()
在其中
allprojects {
repositories {
google()
jcenter()
}
}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这个问题在官网中其实就有说明(https://developer.android.google.cn/studio/releases/gradle-plugin#updating-plugin)
当gradle 版本大于4.1 后,需要使用google的仓库去下载Android Gradle插件3.0.0或更高版本。
在这里插入图片描述

总结:
1、更新了gradle就要更新gradle plugin,gradle下载 -all 版本的,注意gradle 、 gradle plugin版本之间的对应关系

2、gradle网址: 查看gradle的版本 以及可以下载 http://services.gradle.org/distributions/

3、gradle和 gradle plugin 对应关系:
https://developer.android.google.cn/studio/releases/gradle-plugin#updating-plugin
在这里插入图片描述

更新了gradle必须下载更新gradle plugin(这个插件不好找位置直接使用网络自己下载吧)

4、更新gradle的两种方式:在线、离线

4.1、修改gradle-wrapper.properties配置文件 自动下载**
可以选择修改gradle-wrapper.properties配置文件修改gradle的版本,更新后会自动下载到C:\Users\ASUS.gradle\wrapper\dists目录下

4.2、也可以下载高级版本的gradle到本地通过使用本地gralde的方式

5、更新gradle plugin:

5.1、修改build.gradle配置文件 在buildscript{ }中修改classpath 'com.android.tools.build:gradle:x.x.x对应的版本号

修改allprojects {} 添加 google()

5.2、file ==> Project Structre ==> project ==>

android Plugin Version ==>填写版本号

android Plugin Repository ==> google(), jcenter

default Library Repository ==> google(), jcenter

最终build.gradle配置文件:在这里插入图片描述
在这里插入图片描述

6、另一种解决办法 :Androidstudio项目更换gradle版本(https://blog.csdn.net/wb_001/article/details/76473403)结合上面的使用

可能会出现:Lint found fatal errors while assembling a release target. 问题的解决方案
https://www.jianshu.com/p/9a3d4dddfcb2)

至此应该不会出现什么问题了,打包的时候可以选择 v1、v2了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值