Tinker热修复遇到的坑

第一坑

appVersion = "1.0.0" 这个参数的官方注释

/** 注意: 若发布新的全量包, appVersion一定要更新 **/

这个官方注释应该改成 :若发布新的基础安装包, appVersion一定要更新
这个参数必须和补丁的版本一致,我2B一样的以为发布补丁的时候要改城1.0.1
but这个参数只有发布新的基础包的时候再更新。
基础包和补丁都保持一样的1.0.0就成功了。

第二坑

在集成 Bugly 时的异常错误:
What went wrong:
Execution failed for task ':app:tinkerPatchRelease'
old apk .....app\build\bakApk/app-0605-16-51-44/app-release.apk is not exist, you must set the correct old apk value!
没有找到 app-0605-16-51-44 的基准包,我们要做的就是检查路径有木有错误
在 tinker-support.gradle 中找以下代码
/** * 此处填写每次构建生成的基准包目录 */def baseApkDir = "app-0607-17-09-08"
将 baseApkDir = “ ” 的和我们刚开始生存的基准包名一致
就是说吧 baseApkDir = “app-0605-16-51-44” 替换成 “app-0607-17-09-08 ”
这样我们的补丁包才才可以创建成功...

第三坑 Key _Value报错的问题

image.png

直接clean解决

第四坑 冷启动才生效

一、应用的启动方式
  通常来说,启动方式分为两种:冷启动和热启动。
  1、冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。
  2、热启动:当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热启动。
  特点
  1、冷启动:冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Application类,再创建和初始化MainActivity类(包括一系列的测量、布局、绘制),最后显示在界面上。
  2、热启动:热启动因为会从已有的进程中来启动,所以热启动就不会走Application这步了,而是直接走MainActivity(包括一系列的测量、布局、绘制),所以热启动的过程只需要创建和初始化一个MainActivity就行了,而不必创建和初始化Application,
  因为一个应用从新进程的创建到进程的销毁,Application只会初始化一次。

重新启动

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容