The logbook of Android bug in daily development.

文章目录

      • 1. androidx 与 support 兼容、ButterKnife 版本
      • 2. 由 Charles 引起的 Unable to resolve dependency for ':app@debug/compileClasspath': 问题

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 的系统代理。

The logbook of Android bug in daily development._第1张图片

The logbook of Android bug in daily development._第2张图片

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

你可能感兴趣的:(Android,开发)