Bugly 热修复踩坑记录

2019-03-29 09:38:35.108 435-435/? W/Layer: [Splash Screen com.rzj.zhongshi#0] opaque layer with plane alpha:0.83 cannot be handled by hwcomposer
2019-03-29 09:38:35.116 31808-31808/? W/Tinker.Tinker: tinker patch directory: /data/user/0/com.***.********/tinker
2019-03-29 09:38:35.118 31808-31808/? I/Tinker.Tinker: try to install tinker, isEnable: true, version: 1.9.11
2019-03-29 09:38:35.119 31808-31808/? I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:-2, process name:com.com.***.******** main process:true,
 systemOTA:false, fingerPrint:HUAWEI/DRA-AL00/HWDRA-M:8.1.0/HUAWEIDRA-AL00/1.0.0.160(C00):user/release-keys, oatDir:null, useInterpretMode:false
2019-03-29 09:38:35.120 31808-31808/? W/Tinker.TinkerLoadResult: can't find patch file, is ok, just return
2019-03-29 09:38:35.120 31808-31808/? I/Tinker.DefaultLoadReporter: patch loadReporter onLoadResult: patch load result,
 path:/data/user/0/com.rzj.zhongshi/tinker, code: -2,
 cost: 7ms
2019-03-29 09:38:35.121 31808-31808/? W/Tinker.Tinker: tinker load fail!

这个坑我踩了两天,然后加了 Bugly 内测分发交流群 ( QQ群 429975901 ) ,得到了答案,把 Tinker 的依赖版本降低

// 指定tinker依赖版本(注:应用升级1.3.5版本起,不再内置tinker)
    implementation 'com.tencent.tinker:tinker-android-lib:1.9.9'

Tinker的依赖库版本我之前一直是用最新的,设置为 latest.release ,哪里知道居然还是一个不稳定的版本,就这一个坑卡了两天,期间一直 Google、查 Bugly 文档,下载 Demo 比对,找不到问题,在这吐槽 Bugly 的坑货,不稳定的版本也发布。
集成期间还遇到点小问题,比如 FileProvider 冲突问题

<!-- 兼容安卓 N -->
        <provider
            android:name=".utils.BuglyFileProvider"
            android:authorities="${applicationId}.fileProvider"
            android:exported="false"
            android:grantUriPermissions="true"
            tools:replace="name,authorities,exported,grantUriPermissions">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"
                tools:replace="name,resource" />
        </provider>
import android.support.v4.content.FileProvider;

public class BuglyFileProvider extends FileProvider {
}

因为有其他第三方 SDK 有用到 FileProvider ,但是同样的 android:authorities 会造成冲突,所以新建一个类继承 FileProvider ,如果有用到混淆,要记得 keep 住 supper 库。下一篇博客写不用第三方 SDK 如何实现热修复的全过程及实现原理。

    原文作者:萬物並作吾以觀復
    原文地址: https://www.jianshu.com/p/4e80ab5a6101
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞