@[TOC] Bugly Android热更新问题解决[Android11,minSdkVersion=23]
最近在使用Bugly Android热更新的时候遇到一些问题,在这里分享一些解决方案。
Bugly Android热更新使用指南
首先关于基本的集成步骤可以参考官方文档。下面主要讲一下需要改动注意的地方。
注意事项
- Project下面的build.gradle需要一下改动:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
mavenCentral()
jcenter() //必须添加jcenter()才能下载插件
}
dependencies {
// classpath "com.android.tools.build:gradle:7.0.4"
//gradle版本不能高于4.0,tinker还没做高版本的适配,我个人用的是3.6.1
classpath "com.android.tools.build:gradle:3.6.1"
classpath "com.tencent.bugly:tinker-support:1.2.3"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
- 在app Module下的build.gradle需要注意:
minSdkVersion 23 //最低兼容的SDK版本不能超过24,不然的话热更新的包会编译失败
release {
//在这里注释minifyEnabled false ,不然热更新会失败
//minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
- tinker-support.gradle目录下添加一下配置
tinkerPatch {
//新增start
allowLoaderInAnyDex = true
removeLoaderForAllDex = true
//新增end
ignoreWarning = false
useSign = true
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"
}
buildConfig {
keepDexApply = false
}
}
- 如果用到第三方库的话需要注意最低兼容版本同样不能高于24
以上修改过之后,基本就可以正常使用热更新了。