ARouter there′s no route matched

在使用ARouter框架过程中遇到了这个问题,搜索了一下,网上大部分都是说是以下问题导致的

  • path路径的没写对,即最少需要两层:/groupname/Activity,且不同module的groupname名不同
  • 用于跳转的module都需要添加依赖,且该模块需要被主APP模块依赖

看了下,我这两个都没有问题,但还是跳转时找不到页面,最终解决是通过如下操作
因为我的项目是使用Kotlin写的,而不是原先的Java项目,而我module里添加的依赖还是如下方式,虽然不会报错,但是会出现找不到页面的状况

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

dependencies {
    
    
    // 替换成最新版本, 需要注意的是api
    // 要与compiler匹配使用,均使用最新版可以保证兼容
    compile 'com.alibaba:arouter-api:x.x.x'
    annotationProcessor 'com.alibaba:arouter-compiler:x.x.x'
    ...
}

更改为以下的依赖方式即可解决问题

// 可以参考 module-kotlin 模块中的写法
apply plugin: 'kotlin-kapt'

kapt {
    
    
    arguments {
    
    
        arg("AROUTER_MODULE_NAME", project.getName())
    }
}

dependencies {
    
    
    compile 'com.alibaba:arouter-api:x.x.x'
    kapt 'com.alibaba:arouter-compiler:x.x.x'
    ...
}

猜你喜欢

转载自blog.csdn.net/Myfittinglife/article/details/118524994