赞
踩
在开发项目的时候,经常会遇到引用第三方的类库的情况。有时候会把第三方的项目直接拉下来,放到android studio里面阅读。 但是很多时候 android studio 在引入项目的时候会卡在编译的页面,所以很多时候项目没法直接运行,尤其是在网络条件很差的 情况下。
遇到最多的情况是gradle压缩包下载缓慢的问题。所以很多时候,我们使用手动下载gradle压缩包的方式来编译代码。一般情况下 在gradle-wrapper.properties文件中 配置是这样的
自己下载时,需要把distributionUrl地址修改为自己的压缩包地址。具体操作如下 :
1 . 去 https://services.gradle.org/distributions/ 下载自己需要的压缩包。将压缩包下载之后保存起来。位置随意。
2. 将distributionUrl地址改为自己本地文件的地址。例如: distributionUrl=file:\/Users/admin/tools/build/gradle-4.4-all.zip 等等。
如果把压缩包是放在 用户主目录/.gradle/wrapper/dists/ 下的时候,distributionUrl可以直接设置为gradle-4.4-all.zip。
3. 将android studio设置为使用本地gradle编译即可。
这里设置的Gradle home是需要指向解压缩之后的文件的。
4. 编译项目即可。
本以为这样就可以了,然而我还是想多了。
在项目目录下执行 ./gradlew clean 命令仍然不成功。 但是可以看到 gradle -4.4-all.zip确实已经解压成功了。这可咋办呢 ?所以考虑原因是不是因为网络环境太差,所以maven库, jcenter()加载的问题。所以走向了漫长的国内镜像的查询之路。然而,你不努力一把,你都不知道什么叫绝望。 很多都是在说阿里云,或者开源中国的国内镜像。然而,并没有什么作用。 所以是在是布置如何是好。于是就顺手执行了下 ./gradlew assemableRelease --offline命令,没想到竟然执行成功了。于是又重新执行 ./gradlew clean 命令,发现仍然不能执行成功,到底问题出现在哪里了呢 ? 本来以为 clean命令不就是删除了项目下的 build的文件么,为什么会执行不成功呢。想来想去,也没找到合适的答案,于是就想着试试 ./gradlew clean --offline 命令,这次命令却成功了。 然后在执行 ./gradlew assembelRelease --offline 如愿的完成了。 但是仍然不明白为什么 ./gradlew clean 的命令不能执行成功。希望朋友们给答疑解惑,不胜感激。
其实 :在实际开发中,很多时候都是直接用到了代理,可以给gradle设置一个代理,这样的话就能很快的进行文件下载。所以直接在 gradle.properties 中设置代理就可以了
当然,如果这种方式设置不成功的话 ,你可以这样设置试试:
设置在同样的位置即可。 (已配置好ShadowSocks的情况下)。
至此,gradlew编译的问题就结束了。 第一次写东西,不知道对不对,这些都只是个人理解,出错的地方请帮忙指出错误,不胜感激。
以上。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。