Open vincenlee opened 1 year ago
我目前只能通过源码中的sp的key自己在上层手动clear
@vincenlee 老哥最后怎么解决的啊
@ld2006203 我目前是这么解决的,这样切换flavor 再打release包就不会出现路由表不更新的问题 if(BuildConfig.DEBUG){ ARouter.openDebug() ARouter.openLog() }else{ val sharedPreferences = context.getSharedPreferences(Consts.AROUTER_SP_CACHE_KEY, Context.MODE_PRIVATE) sharedPreferences.edit()?.clear()?.apply() } ARouter.init(context as Application)
@ld2006203 我目前是这么解决的,这样切换flavor 再打release包就不会出现路由表不更新的问题 if(BuildConfig.DEBUG){ ARouter.openDebug() ARouter.openLog() }else{ val sharedPreferences = context.getSharedPreferences(Consts.AROUTER_SP_CACHE_KEY, Context.MODE_PRIVATE) sharedPreferences.edit()?.clear()?.apply() } ARouter.init(context as Application)
谢谢老哥,我发现我这边是由于matrix的asm和arouter冲突引起,后面去掉就解决了。可能和这个还不是一个原因。
当多flavor 的情况下 如果完成一个flavor 1 的编译打包成apk(release下)再切换到另外一个flavor 2 继续在release打包运行就会出现 闪退,这种场景存在于 一个path路径对应在两个不同的flavor包下的Service ,而目前我了解到的ARouter 在初始化时 如果没有开启openDebug sp下就会缓存已经反射生成好的routermap 并复用。目前也没看到提供强制不走sp缓存的办法,这种情况下 是否只能是 先切切换到 flavor 2 之后先走debug (通常会配置 如果BuildConfig.isDebug 才会开启ARouter的openDebug)编译安装后 才能切换到release 下打包。是否有更好的办法,希望解答下