alibaba / ARouter

💪 A framework for assisting in the renovation of Android componentization (帮助 Android App 进行组件化改造的路由框架)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于ARouter init 初始化问题-多flavor

vincenlee opened this issue · comments

当多flavor 的情况下 如果完成一个flavor 1 的编译打包成apk(release下)再切换到另外一个flavor 2 继续在release打包运行就会出现 闪退,这种场景存在于 一个path路径对应在两个不同的flavor包下的Service ,而目前我了解到的ARouter 在初始化时 如果没有开启openDebug sp下就会缓存已经反射生成好的routermap 并复用。目前也没看到提供强制不走sp缓存的办法,这种情况下 是否只能是 先切切换到 flavor 2 之后先走debug (通常会配置 如果BuildConfig.isDebug 才会开启ARouter的openDebug)编译安装后 才能切换到release 下打包。是否有更好的办法,希望解答下

我目前只能通过源码中的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冲突引起,后面去掉就解决了。可能和这个还不是一个原因。