这两天遇到一个问题, 特别的疑惑,就是更改代码后运行时代码不生效,只有将APP卸载后才生效,并且如果软件不卸载,以后永远展示的是第一次安装时的效果,debug也是第一次时的代码 ,打断点也是走部分的断点。
内心慌得一笔,会不会是更新的android studio造成的。赶紧查资料……在网上查了好多: 有说关闭instant run的 有说debug路径更改的,我也是各种设置,各种clear project,删除.gradle文件夹……然鹅,没有用。
后来遇见一个帖子说是阿里云热更新的问题,说是删除掉有关代码就可以了,所以我在初始化application的时候,换掉阿里云的application,更换成自己的。居然真的可以了!!!没办法先这样用着。
第二天我咨询了阿里云的技术,他说的是“是不是加载到线上补丁了?”,瞬间恍然大悟……原來我测试阿里云的代码用的就是debug版本,而且版本号没有更新,所以每次打开app,都会加载线上的补丁包,哈哈,所以…………
最终的解决方案有几个:
1测试阶段就用自己的application,不用阿里云的。
2.测试阶段将热更新的核心代码注释掉,就是SophixManager.getInstance().queryAndLoadNewPatch();这行代码
3.跟新测试版的版本号
4.阿里云用release包,跟debug包区分开