項(xiàng)目中因?yàn)槭褂昧藅inker, 且使用的是改造Application方式接入。因?yàn)闃?gòu)建時提示不能使用instant run, 但每次編譯都很費(fèi)時間。于是在網(wǎng)上找相關(guān)的解決方案。其實(shí)官方是有說明解決方法的。
Q: 日常調(diào)試需要使用instant run,怎么關(guān)閉tinker
A:這里分兩種情況:
使用反射Application方式接入:可以直接在build.gradle中將apply from: 'tinker-support.gradle'注釋掉。
改造Application方式接入:先將tinkerSupport中overrideTinkerPatchConfiguration設(shè)置為false,修改成將tinkerSupport中enable設(shè)置為false。
另外,對于使用反射Application方式接入的有這篇文章, 按照文章操作應(yīng)該可以。但是如果是用的改造Application方式接入tinker, 按照官方的說明并不能運(yùn)行instant run。
會報一個tinker id not found的錯誤。
后面查看代碼知道這個時候需要將tinker.gradle 中的tinkerPatch下面的buildConfig中的第二行取消注釋,即tinkerId = "1.0.1-base"這行代碼需要生效。
因此如果想要在改造Application方式接入的項(xiàng)目中開啟instant run。需要進(jìn)行以下操作:
1 tinkerSupport中overrideTinkerPatchConfiguration設(shè)置為false。
2 修改tinkerSupport中enable設(shè)置為false。
3 將tinkerSupport中的buildConfig的tinkerId = "1.0.1-base" 這行打開注釋(默認(rèn)是被注釋的)。
最終的效果如下圖所示:

另外項(xiàng)目如果是多進(jìn)程的話,就需要重啟應(yīng)用了。如下提示:

參考文獻(xiàn):
引入 Tinker 之后如何在 Debug 模式下開啟 Instant Run
Bugly Android 熱更新常見問題