腾讯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 -- 插件化
  2. MUI调用自定义插件(Android)
  3. Android studio 常用的插件
  4. Eclipse 环境下安装PhoneGap开发插件
  5. 推荐一款视频转换软件免费无插件ipad/iphone/Android/YouTube适
  6. 如何安装 Android SDK 和Eclipse 插件
  7. Android Studio插件之Android Layout ID Converter教程
  8. Android Studio 插件

随机推荐

  1. 有关经典实例的文章推荐10篇
  2. 详细介绍MvcPager分页控件使用的实例方法
  3. .NET应用函数定义与用法汇总
  4. SignalR实现实时Web聊天的实例代码
  5. 关于SmtpClient的10篇文章推荐
  6. 分享一篇ASP.NET实现进度条的图文实例
  7. 介绍vs2010问题errorMSB8008与解决方案
  8. 分享SqlDataReader转换无效的解决方案
  9. 基于Cookie使用过滤器实现客户访问登录功
  10. 浅谈 下载实例 核心架构设计