Android Sutdio依赖Snapshot版本,无法同步最新的包(已完美解决)

22 篇文章 0 订阅

起因

局域网中搭建了Nexus托管本地打包的aar,正常情况下,把修改完成的库推送到仓库后,其他项目引用Snapshot版本的依赖,同步后会马上下载最新的包,但是当第二次+推送后,就没有重新下载最新的包,导致代码一直飘红,但是build的时候,可以看到输出的日志中有Download http://xxx, took xx ms (xxx kB) ,就是刚上传的最新的包,结果编译成功。

现象

代码飘红,编译成功,多次清除缓存,重启均无效,重新上传aar也不行。

尝试解决

  1. 执行Android Studio --File–invalidate caches… 全部勾上重启,结果没用
  2. Build–Clean Project ,没用
  3. 重新打包上传,没用
  4. 不依赖Snapshot版本,直接指定最新的版本号,同步报错:Cannot find a version of xxx' that satisfies the version constraints: Dependency path 'xxx:unspecified' --> 'xxx' Constraint path "xxx:unspecified' --> 'xxx:{strictly xxx-SNAPSHOT}' because of the following reason: debugRuntimeClasspath uses version xxx-SNAPSHOT 结果就是没能把最新的包弄下来,还是没用
  5. 关闭Android studio ,删除C:\Users\xxx\.gradle\caches 目录,重新打开项目,等待所有依赖下载完毕,恢复正常

最终解决办法

经过我一个个文件夹排除,最终找到如下依赖版本的更新受到如下目录影响:
找到全局的gradle缓存目录一般是C:\Users\xxx\.gradle\caches\,我这里用的是gradle 7.6.1,所以准确来说,我们的目标文件夹是C:\Users\xxx\.gradle\caches\7.6.1\,然后我们会发现里面有个md-rule目录,然后执行如下操作:

  1. 我们把这个目录里面的所有文件删掉(md-rule.bin、md-rule.lock),如果文件被占用,可以先把Android Studio关闭;
  2. 打开Android Studio,把当前项目的缓存清理掉(Build--clean Project),再执行Sync 同步项目,就会把当前的依赖重新下载一遍,可以从Build输出窗口中看到下载的包已经是最新的了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值