说明
闲来无事,想研究一下热更新,看了大半天,还是决定集成腾讯的bugly试一下,因为Bugly采用微信Tinker的开源方案,而Tinker与其他的一些热修复框架比较,还是有一定的长处。
在集成过程中还是遇到了不少坑,所以特意将整个过程完整的记录一下,仅作为自己学习的参考,如有不足之处,还请多多指教。
tip:主要参考于bugly官方文档
第一步 注册账号,创建应用
进入bugly官网
https://bugly.qq.com/v2/index
选择“应用升级” ,立即接入,然后创建产品
输入你app的相关信息就ok了!
第二步 在项目中集成
1、在项目的根目录build.gradle 文件中添加:
classpath “com.tencent.bugly:tinker-support:1.1.5”
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
classpath "com.tencent.bugly:tinker-support:1.1.5"
}
版本号可以自己参考官方文档进行修改
2、在app 目录下的build.gradle 文件中添加:
implementation "com.android.support:multidex:1.0.1" // 多dex配置
//注释掉原有bugly的仓库
//compile 'com.tencent.bugly:crashreport:latest.release'//其中latest.release指代最新版本号,也可以指定明确的 版本号,例如1.3.4
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'
//其中latest.release指代最新版本号,也可以指定明确的版本号,例如2.2.0
我这里直接复制的文档中的,可以根据自己的需求选择版本。
在defaultConfig 节点里面添加:
// 开启multidex
multiDexEnabled true
ndk {
// 设置支持的SO库架构
abiFilters 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'//,'armeabi'
}
3、在app目录下面新建 tinker-support.gradle 文件,并在app 目录下的build.gradle 文件中引用:
apply from: 'tinker-support.gradle'
app下的build.gradle 完整代码为:
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.btb.testhot"
minSdkVersion 21
targetSdkVersion 29
versionCode 3
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
// 开启multidex
multiDexEnabled true
ndk {
// 设置支持的SO库架构
abiFilters 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'//,'armeabi'
}
}
signingConfigs {
config {
storeFile file("mybug.jks")
storePassword "mybug123"
keyAlias "mybug"
keyPassword "mybug123"
}
}
buildTypes {
release {
minifyEnabled false
signingConfig signingConfigs