这两天遇到一个项目编译的问题,Android studio Build时,Download maven-metadata.xml卡住不动的问题,快的时候十几分钟才编译完成,慢的半个小时都无法完成,这个应该是很网速有关系,但是这个编译速度想必作为程序员没有人可以忍受吧,百度google各种搜索尝试,一直都没有好的解决办法,被困扰了两天,,,有那种一圈砸掉电脑的冲动。。。
网上有说是compat-v7的版本问题的;有些说是要把项目的
maven { url 'https://jitpack.io' }换成
maven { url 'https://www.jitpack.io' };有些说是改maven安装目录项的settings.xml文件的。但是经过验证在我的项目下都无效,还有什么清理项目缓存,重启AS和电脑,都没有任何作用,这里总结我遇到的情况的三种排查方式: 第一种:这也是网上很多网友遇到的最多的一种情况,把项目依赖的maven和google仓库换成阿里云镜像仓库地址,然后clean即可。如下图所示:
我项目的仓库修改如下图:
直接替换,然后clean一下,不到一分钟就可以OK,后面的编译打包速度跟快。
第二种:直接断掉电脑网络,进行离线编译,这时候它会直接调过下载maven-metadata.xml文件的流程,直接进行编译,速度和正常编译的时候一样。但是比较麻烦,每次编译都要断开网络,比较繁琐,而且也治标不治本,况且后面如果有依赖或仓库更新什么的都很麻烦,不推荐。
第三种:这是我这里遇到的情况,使用的一种方式(可能和你问题现象有所不同),这里直接找到问题的根本原因,然后解决,治本方式,步骤如下:
首先要了解maven-metadata.xml文件有什么作用?是用来做什么的?为什么每次编译都要下载查看这个文件?
如下图显示的是com.android.support:appcompat-v7的版本记录,用于APP编译是对应build.gradle里依赖的版本号进行编译。
例如我的项目里就是用的28.0.0的版本;
知道maven-metadata.xml文件的作用之后,就可以判断出是问什么要下载这个文件了,因为有些依赖对应的maven-metadata.xml文件没有找到或者因为网络的原因下载不下来,或者下载得很慢,有什么办法可以解决呢?要么就解决网络问题,要么就不让去做这个检测判断,直接给它定死版本号不就完了么。有了解决思路自然就好解决了,找到项目的所有依赖,看是否有依赖的sdk版本号不确定的,果然,找到了原因所在
这里的latest.release就是应用当前最新的版本号,需要联网下载查询bugly SDK和NDK的最新版本号,然后进行编译,这个就是导致问题出现的原因了,如果是v7-25.+这种形式的版本号也可能会出现这种情况。直接改成下图所示的具体版本号即可解决问题。
另:通过命令编译代码可以直接知道编译过程卡在了哪里,然后可以比较快速的定位问题。
这里做个记录,便于以后查询,希望也能帮助到遇到相同问题的朋友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)