美文网首页Gradle
Gradle下载失败处理和下载过程分析

Gradle下载失败处理和下载过程分析

作者: 小跑777 | 来源:发表于2020-02-26 09:46 被阅读0次

    使用AndroidStudio 编译过程中,如果遇到失败的情况,可以:

    1.把/gradle/wrapper/gradle-waipper.properties 中的distributionUrl 的地址改为http

    2.从别的设备拷贝一份gradle文件:需要按照指定的路径拷贝(如C:\Users\lenovo\.gradle\wrapper\dists\gradle-5.4.1-all\3221gyojl5jsh0helicew7rwx),并且需要拷贝如下四个文件:

    3.想法设法弄一份gradle-{version}-all.zip 或是gradle-{version}-bin.zip 文件  然后拷贝到本地路径,但是如何拷贝才能让系统认识,需要注意2点:

    a.路径正确,不同版本的路径名不同,路径名的神奇文件夹名的确认下文详细解释

    b.文件正确,四个文件,包含不起眼的*.lck 和  *.ok 文件,可以观察到0字节,但是是gradle 判断是否成功下载安装的标记

    路径之中有一个神奇目录:3221gyojl5jsh0helicew7rwx,分析一下目录名是如何生成的

    关于gradle 编译下载,其实是通过GradleW 自动完成下载的,在Android Studio Project 根目录下,存在两个文件:gradlew 和 gradlew.bat , 分别用户linux 和 windows 的gradle 下载等操作。

    脚本中比较重要的两个变量:

    可以看出,gradlew 是调用gradle-wrapper.jar 中的GradleWrapperMain 作为程序入口。

    CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jarexec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

    反编译一下gradle-wrapper.jar ,一顿操作后定位到这段代码,代码时创建已某个字段做md5后的值为名的代码

    可以产生两种猜测:以版本号做md5 ,或是以下载地址做md5

    手撸一段验证一下,可以看到使用下载地址做md5后的结果和刚才本地目录的目录名吻合

    相关文章

      网友评论

        本文标题:Gradle下载失败处理和下载过程分析

        本文链接:https://www.haomeiwen.com/subject/wxnpchtx.html