赞
踩
使用AndroidStudio的导出新项目的时候,会耗时特别久。
因为新导入的工程使用了Gradle版本,在本地没有下载过,需要去临时下载,但是网络速度很慢,所以造成过长的时间。
第一步 下载
手动从去官网 https://services.gradle.org/distributions/ 下载相应的版本。(可以使用Chrome下载,获取相应的下载地址,然后打开迅雷进行下载,速度能达到1M/秒)。
那么Gradle版本在哪里查看?在工程项的的 yourProject/gradle/wrapper/gradle-wrapper.properties 中的distributionUrl=https://services.gradle.org/distributions/gradle-4.1-bin.zip字段,其中gradle-4.1-bin就是该工程的编译版本号。
第二步 放置相应的目录下
将刚刚下载的文件,并放置相应的目录下。
并重启AndroidStudio,记住一定要重启
windows:
C:\Users\用户名.gradle\wrapper\dists\gradle-x.xx-all**{base36String}**\
mac:
/Users/用户名/.gradle/wrapper/dists/gradle-x.xx-all/{base36String}/
这里有个问题是{base36String}是什么?如果你的工程已经在进行加载了,那么在该值就已经生成了,直接放到该目录下面就可以了。
如下图,目录下会生成两个文件,如果存在xx.part表示还在下载中。
是不是有点好奇这个{base36String}到底是什么呢?
下图中,有个jar包,里面的PathAssembler.java文件中有getHash函数就生成该值的函数。具体代码如下:
private String getHash(String string)
{
try
{
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
byte[] bytes = string.getBytes();
messageDigest.update(bytes);
return new BigInteger(1, messageDigest.digest()).toString(36);
} catch (Exception e) {
throw new RuntimeException("Could not hash input string.", e);
}
}
我们就可以下一个专门获取该值的Java代码如下:
import java.math.BigInteger;
import java.security.MessageDigest;
public class Hash {
public static void main(String[] args) {
try {
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
byte[] bytes = args[0].getBytes();
messageDigest.update(bytes);
String str = new BigInteger(1, messageDigest.digest()).toString(36);
System.out.println(str);
} catch (Exception e) {
throw new RuntimeException("Could not hash input string.", e);
}
}
}
其中给入的参数为:https://services.gradle.org/distributions/gradle-4.1-bin.zip 注意,其中注意不要有多余的斜杠等。
如https://services.gradle.org/distributions/gradle-4.1-bin.zip的base36的值为:c3kp51zwwt108wc78u68yt7vs,那么放置的路径就为
/Users/用户名/.gradle/wrapper/dists/gradle-4.1-bin/c3kp51zwwt108wc78u68yt7vs/,如下图所示:
然后启动AndroidStudio,进行相应工程的编译,最后会自动解压zip文件,并在该目录下生成两个额外的文件,具体如下:
并重启AndroidStudio,记住一定要重启
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。