這兩天遇到一個問題, 特別的疑惑,就是更改代碼后運(yùn)行時代碼不生效,只有將APP卸載后才生效,并且如果軟件不卸載,以后永遠(yuǎn)展示的是第一次安裝時的效果,debug也是第一次時的代碼 ,打斷點(diǎn)也是走部分的斷點(diǎn)。
內(nèi)心慌得一筆,會不會是更新的android studio造成的。趕緊查資料……在網(wǎng)上查了好多: 有說關(guān)閉instant run的 有說debug路徑更改的,我也是各種設(shè)置,各種clear project,刪除.gradle文件夾……然鵝,沒有用。
后來遇見一個帖子說是阿里云熱更新的問題,說是刪除掉有關(guān)代碼就可以了,所以我在初始化application的時候,換掉阿里云的application,更換成自己的。居然真的可以了?。。]辦法先這樣用著。
第二天我咨詢了阿里云的技術(shù),他說的是“是不是加載到線上補(bǔ)丁了?”,瞬間恍然大悟……原來我測試阿里云的代碼用的就是debug版本,而且版本號沒有更新,所以每次打開app,都會加載線上的補(bǔ)丁包,哈哈,所以…………
最終的解決方案有幾個:
1測試階段就用自己的application,不用阿里云的。
2.測試階段將熱更新的核心代碼注釋掉,就是SophixManager.getInstance().queryAndLoadNewPatch();這行代碼
3.跟新測試版的版本號
4.阿里云用release包,跟debug包區(qū)分開