Eric's Studio

ARTS041

Word count: 485Reading time: 1 min
2021/09/24

环球影城转了一圈,好玩!
哪个快就排哪个。

Algorithm

Intersection of Two Arrays II - LeetCode

DailyChallenge 找了一道,挺简单的。

TDD 一遍过。

Review

Android 开发太难了,这异常竟然捕获不到?

TransactionTooLarge 的问题,有一个隐藏款。

关注稳定性的话,需要对 Bundle 大小做监控。Mark 一下。

Gradle7.0,依赖统一管理的全新方式,了解一下~

Gradle7.0,依赖统一管理的一种方式预览。

之前项目里面出过 Gradle 自动协商依赖,导致 AAR 依赖的类找不到,出了线上 Bug。后续可能会用这个方案。

看 Detekt 已经在用这个 Feature 了,上次看源码的时候,版本信息找了老半天才找到。

Tips

删除 Submodule 之后 SonarQube 任务遇到一个问题

Execution failed for task ‘:sonarqube’.
The base directory of the module ‘xxx’ does not exist

最终发现是删除 Submodule 的时候,Gradle 的 setting.gradle 中没有删除对 Project 的引用,导致 Sonar 会尝试寻找对应的 Project 目录,此时会报错。

比较难发现的原因是,项目对这个 SubProject 没有依赖,所有的编译,单测任务都是可以正常运行的,只有 Sonar 上报的时候会读到这里。不容易第一时间想到是 setting.gradle 没有清理干净导致的问题。

用 Docker 搞 Android 的 CI。并发运行两个 Job 的时候,发现有概率失败。看表现是两个 Job 同时触发了安装 BuildTools,比较奇怪的尝试安装的 BuildTools 不是我们项目声明使用的版本。

查了一下,AGP 3.0 开始会有一个默认使用的 BuildTools 版本,如果 build.gradle 没有指定,就会使用这个默认版本。把缺失的 module 都指定了一遍之后解决了这个问题。

CI 里面只预装了我以为会使用的 BuildTools,结果还有这种并发跑 Job,自动安装导致的坑。

Share

过

CATALOG
  1. 1. Algorithm
  2. 2. Review
  3. 3. Tips
  4. 4. Share