记切换Cimoc至AndoridX库

前几天更新Cimoc的时候,随手把Android SDK加了1,之后发现被提示要切换到AndroidX库,以前的库要废弃了。本文依旧是面向Google搜索编程(笑),不过搜的有点多,记不太清都从哪里查的资料了。

过程记录

  1. 首先根据别人写的方法(Google官方也有写),使用Android Studio的refactor中的迁移选项,自动转换到AndroidX库。之后编译,挂了,一点也不意外:)
  2. 好象是直接执行`./gradlew assembleDebug`找到了ButterKnife是导致依赖出现问题的元凶。搜了一下,升到最新版。
  3. 之后再编译,被报出了一个JDK的问题,好象是有个jar找不到。搜了搜,貌似是openjdk不完整,执行`yay -S jdk8-openjdk`(arch系linux)安装jdk。
  4. 升级了之后又出现了ButterKnife.findById被废弃,按照https://github.com/feilongfl/Cimoc/commit/c11b06bb027bfeb5f70dc40cba9005fe7160ee8a修改(stackoverflow的老兄们太硬核了,看了半天没看懂o.o,最后自己试了一下,才明白大佬们写的是什么)
  5. 还有错,搜索后加入compileOptions
  6. 印象里还有错,然后把剩下的依赖都更新成了最新版
  7. emmm,好像就这么多,然后就跑起来了,体积大了一点,应该是依赖们都越来越大了。

目前不确定是否有bug,先放成测试版,挂着测试几天。

Android 切换R8混淆器

之前一直没抽出空来,终于过年得到了额外假期关心下大家健康,前两天把之前鸽了好久的Cimoc更新了一下。目前大多数源都可以使用了,有几个源网站失效准备删去,修复了几个,大部分貌似都能用,几个不能用的先搁置几天。

今天抽时间更新了程序的依赖以及适配了Android Q,并且切换到R8混淆器。

效果

通过R8混淆器的使用,编译速度由10min缩短至5min左右(travis ci集成时间),体积缩小170kb左右(由于后面将android support库切换为AndroidX库,依赖更新,折腾完后比原先涨了100k左右)

过程记录

本来R8早在19年就已经被Google设置成为了默认的混淆器,但是由于咕咕咕,以及不常写Android软件,当时的处理是关掉R8,仍保持原有混淆策略。

这次,首先在debug模式启用混淆,启用R8,进行编译,得到了闪退的程序,查看logcat的堆栈信息可知,由于GreenDAO的崩溃导致闪退。

通过面向Google搜索的编程(参考https://juejin.im/post/5d5fb53b51882554a13f8b6a),做出补丁https://github.com/feilongfl/Cimoc/commit/a51f39c406ae9762190f379400491f1b2f108324

再次测试,OK不闪退了,面向Google编程结束。

解决Android Studio错误“Gradle’s dependency cache may be corrupt”

由于换了硬盘,所以顺手升级了下Android Studio。不过今天编译的时候,出现了这个错误。

大概意思就是说gradle的缓存挂了,但是在搜索的时候很多网站都说是网络问题,要写个网址上去,其实这个问题的解决办法是把gradle的缓存删除即可(不知为什么ide自己不会删除坏包)

所以linux执行以下命令即可,其他系统类似

rm -rf .gradle/wrapper/dists