美文网首页
集成阿里热修复HotFix及注意事项

集成阿里热修复HotFix及注意事项

作者: hashj | 来源:发表于2019-12-30 14:28 被阅读0次

    阿里云热修复官方文档:

    https://www.aliyun.com/product/hotfix?spm=5176.8142029.388261.233.kapzlu

    集成步骤

    1、在清单文件AndroidManifest.xml添加权限:

    注:6.0以上手机别忘了动态申请内存卡读写权限。

    2、在项目根目录下的build.gradle文件下添加:

    maven {//移动热修复

                url "http://maven.aliyun.com/nexus/content/repositories/releases"

    }

    3、在app目录下的build.gradle文件添加:

    //热修复

    implementation 'com.aliyun.ams:alicloud-android-hotfix:3.2.12'

    然后Sync Now项目,如果报错,提示无法下载,需要在项目根目录下build.gradle文件中两个repositories节点下都添加如下代码:

    maven{ //阿里云国内镜像

                url 'http://maven.aliyun.com/nexus/content/groups/public/'

    }

    4、新建kotlin文件SophixStubApplication,继承自阿里云的SophixApplication()类

    (1)@Keep后面为自己原来的Application类,这是固定写法

    (2)在attachBaseContext方法中初始化热修复相关代码,如果需要使用MultiDex,需要在此方法内调用,原来自己的Application类中不要在初始化,否则冲突

    (3)在SophixStubApplication类中的onCreate()方法中去查询是否需要热修复

    完整代码如下:

    其中@Keep为自己原来的Application类,setSecretMetaData后面三个参数为在阿里云申请的key、srcret和rsa。

    5、清单文件中,把之前自己的Application类改成SophixStubApplication:

    <application

            android:name=".SophixStubApplication">

    </application>

    6、如果需要混淆添加如下代码:

    注意事项和错误解决:

    1、此处SophixEntry应指定自己之前的的Application,并且保证自己的Application类名不被混淆。

    2、自己真实的Applcation不可以继承MultiDexApplication,否则冲突。

    3、发布补丁时,应用版本指的是版本名称versionName,而不是版本号,代码中设置的版本名称必须和阿里云后台一致,之前我测试时候就是因为在阿里云后台随便死了个版本名称,导致一致测试失败。

    4、如果报错:Error:Program type already present: com.ta.utdid2.b.a.a。解决方案有两个:

    (1)如果项目中有支付宝支付,则需要重新下载不包含utdid的sdk包,支付宝支付sdk下载页面有说明。

    (2)在app目录下的build.gradle文件相应集成热修复的依赖改成,通过代码方式移除掉utdid冲突问题。

    implementation ('com.aliyun.ams:alicloud-android-hotfix:3.2.12'){

            exclude(module:'alicloud-android-utdid')

        }

    5、如果在编译或者运行中报kotlin的协程错误

    Module with the Main dispatcher is missing. Add dependency providing the Main dispatcher, e.g. ‘kotlinx-coroutines-android’

    则尽量去使用阿里云热修复的最新版,老版本确实有这个问题。

    6、在使用阿里云补丁生成包工具时,尽量勾选冷启动方式去修复,避免崩溃问题。

    相关文章

      网友评论

          本文标题:集成阿里热修复HotFix及注意事项

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