Android Studio导入项目非常慢的解决办法

问题

    Android Studio目前已经更新到2.0 Preview 6了,作为Google大力推崇的开发工具,相对于Eclipse ADT有着不可比拟的优势。然而在实际使用时,依然有不少不爽的地方。Android Studio原生支持使用Gradle来构建项目本是个不错的想法,使用动态语言Groovy定义项目构建过程,避免了build.xml文件的繁琐定义。但是Gradle的二进制包体积较大,而且用户可能按照了不同的Gradle版本,构建时可能会出现各种问题。因此又提出了Gradle Wrapper这么个东西,用于解决前面出现的问题。Gradle Wrapper会绑定到一个指定的Gradle版本。当用户导入项目工程时,会自动到远程服务器上下载Gradle包。这样解决了客户端版本不一致的问题,但是也带来了一个新的问题:国内连接到远程服务器下载Gradle包的速度非常慢!所以,每当从Github下载下来一个新项目导入到Android Studio时,都会卡在这个界面:

    你不知道到底是AS死了,还是它确实在后台做些什么……要么就耐着性子等,要么就直接关掉AS,而且必须是强制关闭。这一点做的非常不友善。实际上,之所以卡在这,就是因为后台在服务器下载Gradle包。而这个Gradle包往往有几十兆,在网络环境不太好的情况下,可能要下很久才能完成。显然,我们没有这么多时间在这耗着,需要找个办法来解决了。

解决方法

    在网络上搜罗了一番,通常的做法是修改Gradle Wrapper配置文件中的Gradle版本,但是都不太完整。最后在这里看到了完整点的解决方法。精简下主要如下几个步骤:

  1. 先获取本机相关参数,包含如下几个(括号中是我本人机器的参数):
    • Android Plugin Version:(1.5.0)

    • Gradle Version:(2.8)

    • Compile SDK Version:(23)

    • Build Tools Version:(23.0.2)

    • GradleHome:(/Applications/Android Studio.app/Contents/gradle/gradle-2.8)

          获取方法很简单,在Android Studio里面新建一个工程,单击工程名右键选择“Open Module Settings”弹出对话框中可以看到:

2. 参数准备好了,即可开始修改目标项目的参数。需要修改的参数位于哪些文件呢?

    • xxx-project/.idea/gradle.xml文件:添加或修改<option name="gradleHome" value="前面的GradleHome参数" />
    • xxx-project/gradle/wrapper/gradle-wrapper.properties文件:distributionUrl=https\://services.gradle.org/distributions/gradle-前面的gradleVersion-all.zip
    • xxx-project/build.gradle文件:classpath 'com.android.tools.build:gradle:前面Android Plugin Version' (这个是整个project的配置)
    • xxx-project/build.gradle文件:修改Compile SDK VersionBuild Tools Version参数。(这个是单个module的配置,project中每个module都需要修改)

3. 参数修改完成,开始正式导入项目。一般情况下,这时候可以很顺利的就导入到Android Studio中来了。如果仍然卡在导入界面,那么只能乖乖的等了……

参考

  • http://ju.outofmemory.cn/entry/229755
  • https://docs.gradle.org/current/userguide/gradle_wrapper.html

转载于:https://www.cnblogs.com/csuftzzk/p/android_studio_import_too_slow.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI时代——人工智能技术图谱,它来啦(机器学习+深度学习学习路线)

导读:人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作…

java线程代码实现_Java 实现线程的2种方法的具体代码实例

实现线程的众所周知的方法具体有如下2种&#xff1a;(1)继承Thread类&#xff0c;重写run方法(2)实现Runnable接口&#xff0c;重写run方法然后我做如下具体实例来测试。package com.lxk.threadTest;/*** 线程测试* * Created by lxk on 2016/11/12*/public class ThreadTest {…

编写下载服务器。 第五部分:油门下载速度

在僵尸网络时代&#xff0c;您可以租用几百美元来运行自己的分布式拒绝服务攻击&#xff0c;拥有紧急开关有选择地关闭昂贵的功能或极大地降低性能是一个巨大的胜利。 在缓解问题的同时&#xff0c;您的应用程序仍可运行。 当然&#xff0c;这种安全措施在高峰或工作时间也很有…

高内聚,低耦合——8大核心中间件,微服务基础技术栈技术图谱

什么是微服务? 维基上对其定义为:一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,将应用程序构造为一组松散耦合的服务。在微服务体系结构中,服务是细粒度的,协议是轻量级的。 微服务(或微服务架构)是一种云原生架构方法,其中单个应用程序由许多松散耦…

java光标移动函数_文件内光标的移动 函数基础 定义函数的三种形式 函数的返回值 调用方式...

# with open(ra.txt, r, encodingutf-8)as f:# data1f.read()# print(>1>:,data1)# print(f.tell()) # 44 只有一种情况下&#xff0c;光标的意思是字符# data2f.read()# print(>2>:,data2) # 第一次有结果&#xff0c;第二次没有&#xff0c;第一次读取数据后光标…

JQuery学习笔记——JQuery基础

#&#xff0c;JQuery避免名称冲突的方法var jq jQuery.noConfilct();jq.ready( function(){jq("p").hidden();});就是为了避免和其他库中$冲突&#xff1b;#&#xff0c;在引用jquery的时候&#xff0c;可以考虑使用google或者微软的cdn的jquery链接&#xff1a;<…

DBA 技能图谱——数据库管理员不在迷茫

导读:DBA一般指数据库管理员。数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。 目录 DBA 技能图谱 下载地址 DBA 技能…

java的六大_java程序员必备的六大工具!

原标题&#xff1a;java程序员必备的六大工具&#xff01;Java程序员都会有套工具来应对工作上的挑战。多年来&#xff0c;Java 程序员使用软件来完成他们的工作。有很多工具对他们是有用的&#xff0c;不过对于初入行的人员来说&#xff0c;寻找合适的工具是困难的&#xff0c…

用maven运行指定java类main方法

mvn exec:java -Dexec.mainClass"com.java2s.ide.App" 转载于:https://www.cnblogs.com/silvestris/p/5162264.html

dom4j和jaxb_JAXB,SAX,DOM性能

dom4j和jaxb这篇文章研究了使用多种不同方法将XML文档编组为Java对象的性能。 XML文档非常简单。 它包含一个Person实体的集合。 <?xml version"1.0" encoding"UTF-8" standalone"yes"?> <persons><person><id>person…

H5技能图谱——适合各阶段前端程序员的学习地图

导读&#xff1a;学过web前端的都知道&#xff0c;web前端开发主要包括结构、行为和表现。那么要做好web前端&#xff0c;必须知道哪些技能呢?今天孙叫兽给大家介绍web前端的学习地图。 目录 H5技能图谱 下载地址 H5技能图谱 是不是很简单呢&#xff0c;拿赶紧收藏起来学习…

java写exe程序实例_2012软考软件设计师辅导:利用JAVA执行本地EXE文件

曾经为了这样一个需求找了很多资料&#xff0c;今天终于学习到了&#xff01;如何利用java执行exe文件&#xff1f;使用java类Runtime&#xff0c;每个Java应用程序都有一个Runtime类实例&#xff0c;使应用程序能够与其运行的环境相连接。可以通过getRuntime方法获取当前运行时…

Hadoop 家族技能图谱——包含Hive和Mahout两个大类

导读:hadoop是开源的分布式存储和分布式计算平台.由HDFS(分布式文件存储系统,存储海量数据)Mapreduce(并行处理框架,实现任务分配和调度.)组成。可以搭建大型数据仓库,分析海量日志,存储,统计等。Zookeeper 解决分布式环境下的数据管理,统一命名,状态同步,集群管理,配…

java空格 逗号_Java将字符串中的空格换为逗号

import java.util.regex.Matcher;import java.util.regex.Pattern;public class Math {/*** param args*/public static void main(String[] args) {String str "a c b 1 2.2 3";//结果&#xff1a;a,c,b,1,,,,,,,,,,,2.2,,,,,,,,,3System.out.println(str.replaceA…

使用Spring JUnit规则进行参数化集成测试

Spring 4.2附带了全新的JUnit规则&#xff1a; SpringClassRule和SpringMethodRule 。 使用JUnit规则的主要优点是让开发人员摆脱SpringJUnit4ClassRunner并在Spring集成测试中利用不同的JUnit运行器。 我认为Spring JUnit Rules的最大机会是易于创建参数化的集成测试。 要测试…

逻辑的封闭性

始终认为&#xff0c;代码的好坏&#xff0c;在于思维逻辑的有效性、完整性&#xff08;封闭性&#xff09;&#xff0c;只有这样才可能尽量的保证少出现BUG&#xff0c;或者在需求变更的时候&#xff0c;出现改了一处又出现一处的问题 同样&#xff0c;在解决问题的时候&#…

IOS 开发技能图谱——ios 开发工程师必知必会要点

导读&#xff1a;iOS 开发工程师技能图谱&#xff0c;包含开发基础、开发进阶、设计模式、开源项目、APP上传与审核、第三方服务等。 IOS 开发工程师技能图谱 下载地址 点我下载高清iOS 开发工程师技能图谱 关注公众号 电商程序员&#xff0c;回复 iOS 开发工程师技能图谱&am…

java 数学表达式解析插件_数学表达式解析-JAVA版

1 、工具介绍String exp “v>10&&v<2000&&v%100”;在 js 中&#xff0c;能够直接运行 eval 得到结果&#xff0c; java 中也可以&#xff01;在 java 中运行执行这种字符串格式数学表达式的方法&#xff1a;1、自己写按照算法(逆波兰)一个解析程序。2、…

网络数据包收发流程(四):协议栈之packet_type

进入函数netif_receive_skb()后&#xff0c;skb正式开始协议栈之旅。先上图&#xff0c;协议栈大致过程如下所示&#xff1a;跟OSI七层模型不同&#xff0c;linux根据包结构对网络进行分层。比如&#xff0c;arp头和ip头都是紧跟在以太网头后面的&#xff0c;所以在linux协议栈…

OpenResty学习地图来啦,速速收藏!

导读&#xff1a;OpenResty学习地图&#xff0c;全英文文档 OpenResty学习地图 下载地址 点我下载高清OpenResty技能图谱 关注公众号电商程序员&#xff0c;回复OpenResty技能图谱&#xff0c;获取下载链接&#xff01;