The logbook of Android bug in daily development.

1. androidx 与 support 兼容、ButterKnife 版本

Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add ‘tools:replace=“android:appComponentFactory”’ to element at AndroidManifest.xml:27:5-440:19 to override.

自己遇到这个 Bug 有两种情形:

  • androidx 与 support 不可以共存
  • Butterknife 版本我 10.0.0 或以上

在自己项目中 没有使用 androidx,但是自己错误的引入了一个 androidx 的包,导致以上错误。

解决了以上问题,重新编译项目,依然会报出此错误,此时就是上面第二条引起的,自己引入的 Butterknife 版本为 10.1.0,具体可以参见 JakeWharton 大神关于此条 issuse 的答复 issuse

2. 由 Charles 引起的 Unable to resolve dependency for ‘:app@debug/compileClasspath’: 问题

在好长的一段时间内自己 AS 在构建依赖时总是报出这样的错误:

Unable to resolve dependency for ':app@debug/compileClasspath':xxxx

其实自己之前也遇到过这样的问题,但是基本都是由网络太差或者由于收到设置了代理,包括 AS 设置的代理和 gradle 设置的代理(.gradle 文件夹下的 gradle.properties ) 。

但是这一次碰到如此的问题以上解决方案均不生效,碰到这样的问题,自己就得重启一下电脑(这太 TM 傻了),但是一直没有找到原因。但是总觉得是代理的问题,但是无奈不懂操作系统原理,不知道代理的设置机制,问题一直没有解决。

但是问题在一段时间终于有了眉目,正如标题所说是抓包工具 Charles 引起的,因为因为项目需要,在日常开发中需要抓包调试,所以 Charles 一直在运行。而自己在配置 Charles 时设置了代理时设置了 MacOs 的系统代理。

在这里插入图片描述

在这里插入图片描述

取消勾选这两项,选择 AS 的 Invalidate Cache and Restart,重启一下 AS 后重新构建项目依赖,sucess,哈皮!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值