小提示:如果是开在Indexing这个位置,可以 File--> Invalidate Caches/Restart--> Invalidate and Restart.

如果卡在 Gradle,可以往下看:

第一次打开项目提示这个,如果选择下载最新的,会很缓慢,该压缩包现在已经有100MB以上了。

解决办法,选择取消,手动设置gradle的安装目录。

设置

如果,选择下载最新的gradle,很可能速度太慢,卡很久。可以先把压缩包下载下来。 比如:

https://downloads.gradle.org/distributions/gradle-4.6-all.zip

然后,不要解压压缩包,直接把压缩包,放到上面的路径下。重启Android Studio即可。

使用offline work和Local gradle

在setting->Build,Execution,Deployment->gradle路径下,选择Use local Gradle distribution,把gradle下载到本地,这样本项目和其他项目用到的时候就不需要重新下载了。项目编译运行成功后,如果依赖配置没有修改,可以设置为offline work,这样重新打开项目时,就不会重新编译了。

为什么会卡在Gradle

(1) 当项目中引用的第三方模块太多,打开Android Studio的时候就会非常慢,提示一直在解决模块依赖,点击sync按钮同步第三方代码的时候也是巨慢,慢的原因是:

在gradle中引用第三方模块时采用maven方式依赖,每次打开Android Studio或者点击sync按钮时,都会去maven中央仓库去取第三方的库文件,一般是jar或者aar文件

如果本地没有该文件,则下载回来,由于通过网络访问Android Studio默认的maven中央仓库jcenter很慢,因此就导致同步会非常耗时,尤其是第一次同步,或者clean后重新build的时候,一般都会在十分钟左右,

即使库文件已经下载到本地了,也会去访问maven仓库的,因此当过多的通过maven方式依赖第三方库的时候Android Studio就会非常慢

(2) Android Studio为什么编译很慢?

Android Studio在编译的时候,如果没有同步第三方代码,或者任何一个gradle文件发生变化后,没有去同步,那么点击运行按钮会自动先同步,也就是先同步后编译,平时我们感觉编译慢的原因主要是同步代码太慢,真正同步完成后编译其实是很快的

2 maven依赖是啥?

svn用来管理文本文件,但它不擅长管理二进制文件,这个时候maven就登场了,简单点说,maven就是管理二进制文件的svn,这样说应该可以理解了吧。一般我们使用别人的库需要下载jar文件然后依赖到我们的工程,现在作者将jar文件发布到公共的maven仓库中,在gradle中我们只需要简单的像下面这样:

dependencies {

//使用square开源的网络访问框架okhttp

compile 'com.squareup.okhttp:okhttp:2.5.0'

}

同步代码时,Android Studio就会自动去下载作者发布的jar(或者aar)文件,如果作者发布了新的版本,则只需要简单的修改一下后面的版本号即可,不要这个库,直接删掉这行代码即可,是不是瞬间觉得相当方便啊

在web开发中,只需要使用maven插件就能实现同样功能,只是依赖的写法不同。这就是解决不同模块不同版本依赖的方法—maven大法。

然而由于我们访问国外的服务器太慢,这么先进的生产工具就成了鸡肋,这是造成Android Studio卡、慢的根源

3 解决方法

方法一:

当第一次同步代码后,第三方库都下载到本地了,将gradle设置为offline模式,这样下次就不必访问网络了,这样同步速度从几分钟缩短到几秒钟,但缺点是一旦引入新的maven依赖,本地不存在这个库文件,还是得去访问网络,同样同步慢

方法二:

自己搭建maven仓库,将常用的第三方库放在自己搭建的maven服务器上,这样访问内部的maven服务器就快多了,又方便分模块开发和打包,但这样对服务器的管理麻烦,技术含量高,比较适合需要分模块开发的大型项目,而且当多个模块开发不同步,需要对模块分版本进行依赖、打包、发布的时候,必须采用这种方式,例如:模块A已经开发完毕,模块B正在开发,但这个时候要发版本了,怎么办呢?解决办法就是依赖模块B的上个版本,也就是上个版本的aar文件

方法三:

将第三方库下载到本地,然后将代码复制到自己的项目中,这种方法是在代码级别上直接使用别人的代码,优点是再也不用依赖别人的库,项目模块少,库与自己项目融为一体,缺点是复制的时候太辛苦了,不仅要复制代码文件,还要复制资源文件,容易出错,另外耦合比较严重,删除这个库的时候也非常麻烦,同时别人的代码也破坏了自己的代码风格和命名规范

方法四:

推荐的方法是:尽量使用第三方库的jar、aar文件导入自己的项目,或者将第三方库下载到本地,然后当做一个本地模块导入自己的项目,不要再使用gradle中的maven依赖了

这样就不用苦逼的去复制代码,删除的时候也很方便,只需删除模块即可,实现模块即插即用,缺点是会导致项目的模块太多,不美观,以及很多eclipse写的库导入Android Studio后还要自己修改才能编译通过,很多库是Android工程,不是标准意义的Android library,

其他一些注意事项

(1) 尽量删除不用的module,因为每次sync的时候会去同步所有的gradle文件,即使我们的主工程不使用它也会去同步,sync是全局的

(2) 自己下载gradle到本地,然后在Android Studio指定gradle的位置,避免第一次创建项目时去下载gradle,那也是巨慢的一个过程

(3) 减少同步代码的次数,也就是没事别点sync按钮,每次同步代码都是非常消耗资源的过程,次数多了也就卡了

相关知识:

plugin version: 英文给的很直观:插件的版本,这边的插件是指 gradle插件的版本,所以标题才是 plugin for gradle version,gradle的插件版本,这边一般都不会有什么问题,按照上面的图,对应填上就OK.

gradle version: gradle其实就是用Groovy语言(脚本语言)来编写的一个构建工具,用来帮我们构造程序,打包,编译,部署,依赖,签名..等等..(ps:groovy是一个脚步语言,不要把它跟as或者java混在一起,用groovy也可以写android代码...有兴趣的同学,可以去了解一下)

Gradle 的每个 Android 插件版本(Android Plugin for Gradle)需要与特定的 Gradle 版本相匹配才能编译成功。为了获得最佳性能,应该使用最新版本的 Gradle 和 Android 插件。

参考:

https://www.jianshu.com/p/6a8014d9ceb9

https://blog.csdn.net/fuchaosz/article/details/51146091

https://www.jianshu.com/p/942bfda73659

修改时间 2019-06-29

真诚赞赏,手留余香

赞赏

android卡在gradle,Android Studio打开新项目卡在Gradle的问题相关推荐

  1. AndroidStudio打开新项目后解决下载某版本gradle慢的问题

    场景 在使用Android Studio打开新的安卓项目后,通常在右下角会一直下载某版本的gradle,速度非常慢. 注: 博客: https://blog.csdn.net/badao_liuman ...

  2. android百度多渠道打包,Android多渠道打包方案的实践与优化

    目前使用过的多渠道打包方式有两种 ,一种是通过gradle打包,还有一种是美团的多渠道打包方案具体详情见这里 1.Gradle打包 1.1.在Androidmanifest.xml中添加 androi ...

  3. Android关掉多个activity,Android应用开发之Android Activity栈管理 制定关闭某一个Activity,关闭所有Activit...

    本文将带你了解Android应用开发之Android Activity栈管理  制定关闭某一个Activity,关闭所有Activit,希望本文对大家学Android有所帮助. 系统Api :打开新的 ...

  4. Android Studio下项目构建的Gradle配置及打包应用变体

    Gradle简介   Gradle是一个自动化构建工具,采用Groovy的Domain Specific Language(领域特定语言)来描述和控制构建逻辑.具有语法简洁.可读性强.配置灵活等特点. ...

  5. android studio 手动安装gradle,Android Studio 如何安装Gradle?

    今天新下载安装了Android Studio 2.1,启动并新建第一个项目,结果卡在 gradle 上.网上搜原因,得到这个网页:http://blog.csdn.net/maxsky/article ...

  6. 【错误记录】Android Studio 编译报错 ( Invalid Gradle JDK configuration found )

    文章目录 一.报错信息 二.解决方案 一.报错信息 Android Studio 编译时提示 Invalid Gradle JDK configuration found 错误 ; 一般是打开一个新的 ...

  7. 【Android】Android Studio中新创建的app目录结构

    安装Android Studio后,然后创建一个app项目.对于初学者来说,我们希望了解app目录结构,然后更好的进行开发工作. 但是要想了解一个app的目录结构,首先需要明确两个概念 Project ...

  8. android studio抛出,Android Studio中新的项目不能运行,抛出错误(Android Studio new pr

    刚才我已经安装,并开始在Android Studio中工作,并配置我需要开始上项目的工作一切之后创建的新项目. 在新创建的项目,我没有改变任何东西,然后试图运行项目. 但它不工作,抛出一些相关性错误, ...

  9. android studio3.5教程,Android Studio 3.5新特性

    版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. : 在今天(美国时间8月20日)的早些时候,Android Studio(以下简称为AS) 3.5 ...

最新文章

  1. mysql优化说出九条_技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢?
  2. [Snoi2017]炸弹
  3. boost 文件操作
  4. 利用SQL查找表中的质数(prime number)和完全数(perfect number)以及几个有趣的SQL语句...
  5. BZOJ3170: [Tjoi2013]松鼠聚会(切比雪夫距离转曼哈顿距离)
  6. 程序员鼓励师是什么?
  7. Usaco2012-2013 金组 题解 (暂缺Hill walk以及Figue eight)
  8. python文献检索工具与技巧答案_文献检索(答案)
  9. python做一个qq聊天窗口_python实现qq聊天(带界面)
  10. 单片微型计算机频率测量实验,毕业论文:频率计系统设计
  11. 亲测有效sudo: /etc/sudoers is world writable sudo: no valid sudoers sources found, quitting sudo: una
  12. HTML小游戏9 —— 潜行游戏《侠盗罗宾汉》(附完整源码)
  13. 什么是DOM(个人理解)
  14. Android实现登录邮箱的自动补全功能
  15. linux fw_printenv fw_setenv 设置uboot环境变量
  16. 瑞幸入局无人零售:“不安分”的挑战者
  17. qtdesigner设计表格_PyQt:使用QtDesigner设计界面
  18. 这个“安装 macOS xxx“应用程序副本已损坏,不能用来安装 macOS
  19. 计算机专业介绍 英语文章,计算机专业英语文章
  20. 关于STM32的IIC跟EEPROM通信为什么卡死在while(I2C_CheckEvent)的EV6事件还有为什么检测的是标志位及其怎样写等待写入操作完成函数问题跟解决方法

热门文章

  1. 无法连接wifi Wifi 6 mt7921 wireless lan card无法启用
  2. MATLAB 打不开coder,MATLAB CODER初次使用的错误提示,希望大侠可以帮忙解决!...
  3. 这几所院校会压分!请注意!
  4. 知识分享-博客公众号推荐
  5. Nagios汉化页面
  6. Django富文本编辑——Ckeditor的配置、使用和踩坑(应该全)
  7. 众人逃离北上广后又逃回:观念不合拍还要拼爹
  8. Java Scanner findInLine()方法与示例
  9. java 引用数据类型Scanner类 Random类
  10. C++ 动态创建二维数组