ShareSDK、aliyunDNS 的动态版本依赖导致的编译失败问题

31 篇文章 0 订阅

打包时常常遇到失败的情况,报错 log:

* What went wrong:
Could not resolve all files for configuration ':app:releaseRuntimeClasspath'.
> Could not resolve com.aliyun.ams:alicloud-android-utils:1.1.+.
  Required by:
      project :app > com.aliyun.ams:alicloud-android-httpdns:1.1.7
   > Failed to list versions for com.aliyun.ams:alicloud-android-utils.
      > Unable to load Maven meta-data from ...
         > Could not HEAD ...
            > Read timed out
* What went wrong:
Could not resolve all files for configuration ':app:releaseRuntimeClasspath'.
> Could not resolve com.mob:MobTools:+.
  Required by:
      project :app > com.mob:MobTools:+
   > Failed to list versions for com.mob:MobTools.
      > Unable to load Maven meta-data from ...
         > Could not HEAD ...
            > Read timed out

分析:

  • 报错的经常是 ShareSDK、aliyunDNS 这里两个库,它们的共同点是,都引用了动态版本的依赖

问题原因:

  • 有依赖的版本设置为动态版本(即 +、snapshot 等)(动态版本每次同步都会访问网络,不过 Android Studio 中默认设了 24 小时的缓存)
  • repositories 里有仓库不能访问

复现:

  • 开 Charles,给 repositories 里某个仓库地址打断点
  • 一段时间后报错

解决:

  • 将动态版本改为固定版本
    • aliyunDNS 是传递的依赖中有动态版本,ShareSDK 是通过 Gradle 插件编译时加入的依赖,都无法直接替换
    • 可参考 Gradle 技巧:操作 dependency
  • 等待仓库链接好转
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值