腾讯bugly集成指南

1、在build.gradle中添加依赖

dependencies {        classpath 'com.android.tools.build:gradle:3.2.0'        classpath 'com.vanniktech:gradle-android-junit-jacoco-plugin:0.6.0'        classpath 'com.tencent.bugly:tinker-support:1.1.5'//加上这行        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }

2、在 app build.gradle中添加依赖,没有加Android support中的MultiDex,是因为我用了Androidx,里面自带这个包,如果没有需要添加上,建议用Androidx,毕竟官方已经出了,这样可以少引入好多包,好处多多。

  implementation "com.tencent.bugly:crashreport_upgrade:1.3.6"    // 指定tinker依赖版本(注:应用升级1.3.5版本起,不再内置tinker)    implementation 'com.tencent.tinker:tinker-android-lib:1.9.9'implementation 'com.tencent.bugly:nativecrashreport:latest.release'//bug上传

3、在Application中初始化,初始化完毕,别忘了在清单文件中引入自定义的application,我是基于

enableProxyApplication = true的情况下做的,要不改的代码太多了,只能用这中方式了。
@Override    protected void attachBaseContext(Context base) {        super.attachBaseContext(base);        MultiDex.install(this);//必须加        Beta.installTinker();//初始化    }@TargetApi(9)    protected void setStrictMode() {        StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().permitAll().build());        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().build());    } @Override    public void onCreate() {        super.onCreate();        setStrictMode();        // 设置是否开启热更新能力,默认为true        Beta.enableHotfix = true;        // 设置是否自动下载补丁        Beta.canAutoDownloadPatch = true;        // 设置是否提示用户重启        Beta.canNotifyUserRestart = true;        // 设置是否自动合成补丁        Beta.canAutoPatch = true;        Bugly.init(this, "xxxxxx", true);    }

4、在app 目录下创建thinker-support.gradle文件

apply plugin: 'com.tencent.bugly.tinker-support'def bakPath = file("${buildDir}/bakApk/")/** * 此处填写每次构建生成的基准包目录    这个是你第一次assembleRelease会在build生成一个如下的文件夹    创建补丁包的时候,需要填写,否则报错。 */def baseApkDir = "app-0829-10-34-40"/** * 对于插件各参数的详细解析请参考 */tinkerSupport {    // 开启tinker-support插件,默认值true    enable = true    // 自动生成tinkerId, 你无须关注tinkerId,默认为false    autoGenerateTinkerId = true    // 指定归档目录,默认值当前module的子目录tinker    autoBackupApkDir = "${bakPath}"    // 是否启用覆盖tinkerPatch配置功能,默认值false    // 开启后tinkerPatch配置不生效,即无需添加tinkerPatch    overrideTinkerPatchConfiguration = true    // 编译补丁包时,必需指定基线版本的apk,默认值为空    // 如果为空,则表示不是进行补丁包的编译    // @{link tinkerPatch.oldApk }    baseApk = "${bakPath}/${baseApkDir}/app-release.apk"//    baseApk =  "${bakPath}/${baseApkDir}/app-debug.apk"    // 对应tinker插件applyMapping    baseApkProguardMapping = "${bakPath}/${baseApkDir}/app-release-mapping.txt"//    baseApkProguardMapping = "${bakPath}/${baseApkDir}/app-debug-mapping.txt"    // 对应tinker插件applyResourceMapping    baseApkResourceMapping = "${bakPath}/${baseApkDir}/app-release-R.txt"//    baseApkResourceMapping = "${bakPath}/${baseApkDir}/app-debug-R.txt"    // 构建基准包跟补丁包都要修改tinkerId,主要用于区分    tinkerId = "1.0.3-path"    // 打多渠道补丁时指定目录    // buildAllFlavorsDir = "${bakPath}/${baseApkDir}"    // 是否使用加固模式,默认为false    // isProtectedApp = true    // 是否采用反射Application的方式集成,无须改造Application    enableProxyApplication = true    // 支持新增Activity    supportHotplugComponent = true}/** * 一般来说,我们无需对下面的参数做任何的修改 * 对于各参数的详细介绍请参考: * https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97 */tinkerPatch {    tinkerEnable = true    ignoreWarning = false    useSign = false    dex {        dexMode = "jar"        pattern = ["classes*.dex"]        loader = []    }    lib {        pattern = ["lib/*/*.so"]    }    res {        pattern = ["res/*", "r/*", "assets/*", "resources.arsc", "AndroidManifest.xml"]        ignoreChange = []        largeModSize = 100    }    packageConfig {    }    sevenZip {        zipArtifact = "com.tencent.mm:SevenZip:1.1.10"//        path = "/usr/local/bin/7za"    }    buildConfig {        keepDexApply = false//      tinkerId = "base-2.0.1"    }}

5、可能会报一些错,在gradle.properties中加入

android.useDexArchive= trueandroid.enableD8.desugaring= trueandroid.enableD8 = true

6、需要注意的点,打补丁包的时候用buildThinkerPatch.Release,然后上传到bugly的发布补丁就行了。

更多相关文章

  1. 完成android的manven项目管理
  2. Android(安卓)studio安装Genymotion插件
  3. MUI调用自定义插件(Android)
  4. Android(安卓)-- 插件化
  5. 从头开始学Android—Android(安卓)Studio(二)
  6. Android(安卓)源代码在线查看(转)
  7. Android(安卓)Studio在引用项目时使用JDK1.8的解决办法
  8. Android(安卓)Studio 插件
  9. android studio 启动报nexpected exception during symbol build

随机推荐

  1. MySQL的查询缓存和Buffer Pool
  2. 浅析MySQL的基数统计
  3. MySQL数据库基于sysbench实现OLTP基准测
  4. mysql 递归查找菜单节点的所有子节点的方
  5. Mysql sql慢查询监控脚本代码实例
  6. 详解 MySQL的FreeList机制
  7. 详解MySQL的数据行和行溢出机制
  8. mysql 重要日志文件汇总
  9. MySQL的表空间是什么
  10. MySQL慢查询如何定位详解