详解关于Android Studio中安装和gradle的一些坑
作者:佐天掀裙手 发布时间:2023-06-10 05:58:30
本人从开始用Android Studio到现在已经快一年了吧,在我刚开始用的时候Android Studio还是1.2的版本。当时安装会因为国内墙的缘故,导致下载SDK步骤卡死无法安装。
最近的版本似乎都没出现这个问题,但是还是要吐槽一下最近的2.2.3的更新。这个版本安装包自带的SDK里build tools版本是25.0.2,支持的最低gradle版本是3.3,然而安装包内自带的gradle版本是3.2,所以单纯这个用安装包你并不能建立任何完整的项目,连自带的Helloworld项目都会报错,这在部门最近招新的时候坑了不少小鲜肉。
既然我说明了原因,那解决方法很明显:
(1)下载sdk,下载更早版本的build tools。sdk manager怎么设置镜像什么的我就不多说了,这个随便都能找到
(2)更新gradle。这个东西说实话我也不是很清楚它的内部构造,我只知道它在更新AS和项目合作的时候会导致很多问题。(对,我是被坑出经验的)
所以下面就来讲讲gradle。
首先这个东西主要坑就在于,它不跟SDK一起更新,是属于AS自己的东西。在你的电脑中没有项目指定的gradle版本的话,AS就会默认去下载。由于被墙的原因,下载肯定会异常的缓慢甚至根本不动。如果有可靠的VPN可以为AS设置代理,完美解决墙的问题。但是像我这种学生狗,能省的钱还是会去省,有不用花钱的办法一般不会花钱。所以在不用VPN的情况下,怎么解决呢?
首先,既然gradle版本是项目指定的,那么我们只要修改项目的gradle配置,改成我们有的gradle不就行了?
一般来说,高版本的gradle会兼容低版本的gradle。而使用高版本gradle的项目,改用低版本gradle也不一定会出问题(至少我没遇见过)。在你拿到一个别人的项目,或者自己旧版AS的项目,为了使这个项目的gradle适应新的AS,我们需要修改三个文件,就是下图的三个文件:
1、总项目的build.gradle
如上图所示,注意denpendencies中的第一条,最后gradle:2.3.1(第二条是一个开源的数据库工具类Realm)
这个2.3.1是AS的版本号,旧版AS这一条会是旧版的版本号。
2、app目录下的的build.gradle
这个一般情况下不用修改,但是若出现build tools问题(例如开头所说的2.2.3更新的问题)就要修改这个文件中设置的build tools版本
3、gradle-wrapper.properties
这个文件在项目的gralde/wrapper/目录下,关键是这一句
其中gradle-3.3-all.zip指的就是指定gradle版本3.3,把3.3改成电脑上有的版本就可以了。
至于电脑上到底有哪些版本的gradle,一方面可以对照自己正常使用的项目中的这个文件,另外还可以去AS目录下的gradle文件下查看
如图所示就是3.0到3.4版本的gradle,文件夹中包含的版本应该都可以使用。
然后,如果不想每次拿到项目都要改这些,另一个方法就是,自己去更新gradle,并把gradle放下AS目录下的gradle文件夹中。这样本地拥有指定的gradle,AS就不会去尝试穿墙下载了。
下面贴一个资源网站,拥有很全的安卓开发工具下载资源,上面所说的gradle也可以在这里下载,速度也很快。
http://www.androiddevtools.cn/
来源:http://blog.csdn.net/github_38857016/article/details/72566202


猜你喜欢
- 目录业务场景:解决方案:总结业务场景:一个用户数据接口,要求在20ms内返回数据,它的调用逻辑复杂,关联接口多,需要从3个接口汇总数据,这些
- java读取resources文件详解及实现代码Java项目中,经常需要将资源文件打包放在项目中,然后在项目中去读取对应的文件。实现代码:S
- 本篇介绍了SpringBoot 缓存(EhCache 2.x 篇),分享给大家,具体如下:SpringBoot 缓存在 spring Boo
- 本文为大家讲解了Struts2框架的入门知识,供大家参考,具体内容如下1、Struts2框架介绍Struts2框架是MVC流程框架,适合分层
- 本文实例为大家分享了Java实现带图形界面聊天程序的具体代码,供大家参考,具体内容如下ServerDemo01.javaimport jav
- foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有item,index,colle
- Java 调用long的最大值和最小值今天对Java八种基本数据类型进行总结,当总结到整数类型中的long时,出现了测试long最大值和最小
- 新版本的xlsx是使用新的存储格式,貌似是处理过的XML。对于OpenXML我网上搜了一下,很多人没有介绍。所以我就这里推荐下,相信会成为信
- 引言上文Android:实现一个自定义有限制区域的图例(角度自识别)涂鸦工具类(上)中我们已经实现了自定义View签名的功能,包含撤回、清除
- 前言我们利用printf 函数实现一个在屏幕上弹跳的小球,如图所示。弹跳的小球游戏比较简单、容易入门,也是反弹球消砖块、接金币、台球等很多游
- 1、满二叉树、完全二叉树、平衡二叉树、红黑树、二叉搜索树的区别?参考文章:树、二叉树(完全二叉树、满二叉树)概念图解① 满二叉树高度为&nb
- 本文介绍了Android短信的发送和广播接收者实现短信的监听,要注意Android清单中权限的设置以及广播的注册监听实现,废话不多说,代码如
- 本文为大家分享了Android Toast全屏显示的具体代码,供大家参考,具体内容如下废话不说,直接上代码:private void toa
- 本文实例讲述了Android学习笔记之应用单元测试。分享给大家供大家参考,具体如下:第一步:在AndroidManifest.xml中加入如
- Spring @Configuration 和 @Component 区别一句话概括就是 @Configuration 中所有带 @Bean
- 在用C#开发windows端程序并连接SQL Server时有可能会遇到数据库登录失败的问题,报错现象如下图所示:报错信息如下:System
- Java Map.values()方法获取Map集合中的所有键值对象Java 集合类中的 Map.values() 方法用来获取
- 简介redis 多数据源主要的运用场景是在需要使用多个redis服务器或者使用多个redis库,本文采用的是fastdep依赖集成框架,快速
- 【SpringBoot】通过Feign调用传递Header中参数如何通过Feign传递Header参数问题描述我们在SpringCloud中
- 先看下效果图:这个需要用到1个开源的 库,这个后面也会说下的。工程目录:1. MainActivity.javapublic class M