踩坑:路由框架ARouter::There is no route match the path

There is no route match the path

解释1:

可能是开启InstantRun之后无法跳转(高版本Gradle插件下无法跳转)?

因为开启InstantRun之后,很多类文件不会放在原本的dex中,需要单独去加载,ARouter默认不会去加载这些文件,因为安全原因,只有在开启了openDebug之后 ARouter才回去加载InstantRun产生的文件,所以在以上的情况下,需要在init之前调用openDebug。


if (isDebug()) {           // 这两行必须写在init之前,否则这些配置在init过程中将无效
    ARouter.openLog();     // 打印日志
    ARouter.openDebug();   // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)
}
ARouter.init(mApplication); // 尽可能早,推荐在Application中初始化

来自:Arouter 的坑 ARouter::There is no route match the path

解释2:

可能是配置出现问题。

在模块化开发时需要在各个目标模块的build.gradle里都要配置

 
 defaultConfig {
        ... 
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = [moduleName: project.getName()]
            }
        }
    }


dependencies {
    ... 
    annotationProcessor 'com.alibaba:arouter-compiler:1.1.4' // 版本号替换
}

来自:ARouter::There is no route match the path

你可能感兴趣的:(踩坑:路由框架ARouter::There is no route match the path)