美文网首页
记录我的一次改bug之旅

记录我的一次改bug之旅

作者: 辣椒炒蛋我爱吃 | 来源:发表于2019-08-29 17:45 被阅读0次

最近在维护公司的一个老项目,因为之前都是别人写的,刚开始看他的代码时,我是一脸懵逼,不是因为看不懂,而是因为他的编码风格太过飘逸,格式不太规范,让我有点难受,这次改了一个bug,让我想起了以前笑了很久的一张图

p.gif

hhh扯远了,话不多说,最近项目需要加一个新功能,拿起键盘直接开撸,没想到刚添加一个依赖库,编译到一半就报错了

Error:Executionfailedfortask':test:processDebugManifest'.>Manifest merger failed with multiple errors,see logs

我看了半天,都不知道错误在哪儿,网上百度了一波,可能使用命令查看详细的错误日志

./gradlew processDebugManifest --stacktrace //我用的是Mac,window系统需要把前面的./去掉

结果又报错了

zsh: permission denied: ./gradlew

继续百度,需要添加gradlew权限

chmod +x gradlew

重新执行命令查看错误日志,结果还是没有看到有用的信息,当时我都想砸电脑了,长期做程序员这一行,导致血压都有点偏高,做事比较浮躁,我整理了一波情绪,发现log太长,有用的错误信息在最顶上,此时的我突然觉得可能还是我太暴躁了,我努力使自己平静下来,看了一下报错信息

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 <application> element at AndroidManifest.xml:6:5-21:19 to override.

又经过一番百度,发现是新加的依赖库版本是androidx,和现有的support库有冲突,解决这个问题的方法有两种

  1. 使用依赖库的老版本,不使用androidx
  2. 将现有现有项目升为androidx版本

当然第一种最省事,但是作为一个敢于挑战困难的程序员(其实是老版本库不满足需求- -),我们就要迎难而上,最终我选择了将旧项目升级为androidx,升级androidx的方法我就不提了,网上一收一大把,升级倒是简单,但是升级之后又出现了了一大波坑,又报错了

The given artifact contains a string literal with a package reference 'android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx
最后发现是butterknife的依赖出了问题,原来support库和androidx是不能兼容的,这个老项目之前的依赖包都比较老,有v4也有v7,无法和现有的androidx相互兼容,最终参考了这篇文章,将butterknife,glide,pickerview修改后终于可能正常运行了

AndroidX升级;项目升级AndroidX遇到的问题和解决

总结

自己有时候还是太浮躁了,改bug必须要心平气和,因为急也没有用,这个不是着急就能解决问题的,需要静下心自己去慢慢分析

相关文章

  • 记录我的一次改bug之旅

    最近在维护公司的一个老项目,因为之前都是别人写的,刚开始看他的代码时,我是一脸懵逼,不是因为看不懂,而是因为他的编...

  • [项目蓝图] 个人博客项目

    此项目属于萌新学习(>▽<),还请大佬们多多指教 _(:」∠)_该日记主要记录写Bug和改Bug的过程 项目介绍 ...

  • 改bug

    一年以前的代码,又要改了。由于之前缺乏单元测试和回归测试的缘故,2015年1月通过测试的代码,在5月份新增功能后,...

  • 改bug

    步骤1:复现 都说如果一个bug可以每次复现了,那里它的解决也不远了。这里其实有一个隐藏的道理——就是如果你每次都...

  • 改bug

    想隔气,总能找到理由?️?️?️?️

  • 改bug

    这算是我遇到的没改的比较顽固的bug了,虽然在很多大神看来这个很简单,但是木有办法,菜鸟的我只能慢慢来,一边查文档...

  • 一周工作心得

    最近一段时间工作就是:改bug,改bug。 哈哈,可能别的行业的朋友们不知道改bug是个什么鬼,简单解释下,...

  • elTree和AUpload组件问题

    记录本周改bug遇到的问题,主要是组件层面样式、功能修改。 elTree横向滚动条一开始盯着elTree根dom改...

  • 五年阿里改Bug的技巧和心得体会

    那天同事问我你有什么突出的地方,我想了半天,觉得我最突出的地方就是改Bug比较快,所以今天我就对改Bug的技巧做下...

  • Kapt AnnotationProcessor Error:

    记录一次奇怪的bug: Description : Previously, I deleted weatherUs...

网友评论

      本文标题:记录我的一次改bug之旅

      本文链接:https://www.haomeiwen.com/subject/dxtwectx.html