Tinker和Instant Run的并存

項(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)是被注釋的)。

最終的效果如下圖所示:


661.png

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


2.png

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容