1、每次 Run 都会生成一个 bakApk
问题:
引入 Tinker 热更新方案后,每次 Run 都会生成一个 bakApk,如果每天要调试很多地方,那么 build/bakApk 下,会生成N个对应的 bakApk 文件夹,最终会使整个项目文件容量暴增…(博主还怀疑,这样会造成 AndroidStudio 编译速度的延缓,但未测试过)
解决:
通过阅读官方的技术文档,始终没有发现有对这个情况的相关配置项,所以只能从别处下手,最后发现,通过在 app module 的 “build.gradle” 文件中,注释掉依赖插件脚本,最终解决掉这个问题:
说两句:
目前运行调试一切正常,不过要始终留意后续是否会出现问题;重要的一点是,当要打包新版本时,一定要解开这个注释。
2、can’t the get signConfig for this build
问题:
执行 buildTinkerPatchRelease 打 Release 版本补丁包时报以下错误:
Error:Execution failed for task ':app:tinkerPatchRelease'.
> can't the get signConfig for this build
解决:
android {
...
// 签名配置【buildTypes中调用了signingConfigs,则signingConfigs{}要置于buildTypes{}前面】
signingConfigs {
release {
try {
storeFile file("MyProject.jks")
storePassword "111111"
keyAlias "zhangzeqiao"
keyPassword "111111"
} catch (ex) {
throw new InvalidUserDataException(ex.toString())
}
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
debug {
...
signingConfig signingConfigs.release
}
}
...
}
其中要特别注意,signingConfigs{} 方法体要置于 buildTypes{} 方法体前面,不然会报以下错误:
Error:(30, 0) Could not get unknown property 'release' for SigningConfig container of type org.gradle.api.internal.FactoryNamedDomainObjectContainer.
再者,storeFile file(“MyProject.jks”) 中的签名文件,与 build.gradle 在同一目录下: