1、每次 Run 都會生成一個 bakApk
問題:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TP3JGasd1YsB3MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zN4QzM1YDNzETMxYDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
引入 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{} 方法體前面,不然會報以下錯誤:
再者,storeFile file(“MyProject.jks”) 中的簽名檔案,與 build.gradle 在同一目錄下: