bugly android 热更新遇到的fuck问题

文章参考

热修复——Bugly让热修复变得如此简单
Bugly Android热更新总结篇
官方文档

遇到的问题

1、没有发现assembleRelease出来
2、怎么没有生成patch版本
3、热补丁成功后,发现会崩溃,BuildConfig无法获取到值
4、You need to use a Theme.AppCompat theme (or descendant) with this activity
5、补丁下载成功,补丁应用失败

编译器版本

android studio 3.5.0
build:gradle 3.3.1

热更新版本

classpath "com.tencent.bugly:tinker-support:1.2.0"
'com.tencent.bugly:crashreport_upgrade:1.4.2',
'com.tencent.tinker:tinker-android-lib:1.9.14',
'com.tencent.bugly:nativecrashreport:3.7.1',

解决问题

说明:这几个问题,都是我遇到的,但是我这样的操作解决了我的问题,所以不知道是否可以解决你的。
1、没有发现assembleRelease出来
我看到官方文档里面有张图


bugly android 热更新遇到的fuck问题_第1张图片
官方文档图片.png

但是在我的android studio 3.5里面怎么也没发现


bugly android 热更新遇到的fuck问题_第2张图片
没发现有官方文档里面的东西.jpg

结果我发现是在这个里面
bugly android 热更新遇到的fuck问题_第3张图片
在other里面.jpg

2、怎么没有生成patch版本
通过assembleRelease,我们会在build/bakApk文件夹里面会生成一个文件
bugly android 热更新遇到的fuck问题_第4张图片
文件生成.jpg

这里app-0927-14-23-58文件夹对我们来说很重要,我们需要复制出来,在该文件夹里面会有一个已经生成好第一个apk文件,我们将该文件就可以拿去上线发布了。


bugly android 热更新遇到的fuck问题_第5张图片
开始生成patch包.jpg

在tinker-support.gradle里面,我们baseApkDir目录名一定要跟,我们bakApk里面下面的文件夹名称相同
其次,apk名字也要相同,否则无法生成patch,关于myTinkerId的说法,我上面贴出的一篇博客写的很好的,简单来说,我们的myTinkerId每次都要唯一。好了,现在我们可以对代码进行修改,然后找到
bugly android 热更新遇到的fuck问题_第6张图片
点击生成补丁包.jpg

此时就可以拿到补丁包了
3、热补丁成功后,发现会崩溃,BuildConfig无法获取到值
我出现这个问题的原因是,没有按文档说的,把Application初始化的操作都放在自定义的ApplicationLike代理类的onCreate里面

4、You need to use a Theme.AppCompat theme (or descendant) with this activity
热更新完成后,直接来debug模式来启动这个APP就会这样

5、补丁下载成功,补丁应用失败
5.1、我是通过debug方式来运行APK,此时产生的基线版本已经不同了,所以补丁更新也会失败
5.2、直接通过build-->sigin一个APK出来,直接拿bakApk里面的基线版本来打补丁也失败
所以你需要拿原来的基线版(给项目经理拿去发布的那个版本)来打补丁

发布补丁的时候,目标版本是什么意思?
bugly android 热更新遇到的fuck问题_第7张图片
含义.jpg

1.0.1是我的versionName,后面的.2是我的versonCode 2

你可能感兴趣的:(bugly android 热更新遇到的fuck问题)