AndroidStudio 导入项目时,Building gradle project info 时间过长

AndroidStudio 导入项目时,Building gradle project info 时间过长

问题描述:

使用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就是该工程的编译版本号。

工程目录示例
Gradle版本号示例

第二步 放置相应的目录下
将刚刚下载的文件,并放置相应的目录下。
并重启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,记住一定要重启

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页