版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/o279642707/article/details/81298393
前言
最近项目进行混合编程(java、kotlin),再引入Arouter时候遇到的一些的奇奇怪怪的问题。
1.当*.kt 后缀的Activity上使用@Router(path =xxxxx)时候遇到No match path;
原因: *.kt 上的注解需要使用 kotlin方式的注解解释器才可以识别。
检查module的 build.gradle 文件 ,引入Arouter方式是否是 Apt
java 方式
defaultConfig {
.....略....
javaCompileOptions {
annotationProcessorOptions {
arguments = [moduleName: project.getName()]
}
}
}
dependencies {
annotationProcessor 'com.alibaba:arouter-annotation:1.0.4'
}
kotlin 方式
导入...
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
kapt {
arguments {
arg("moduleName", project.getName())
}
generateStubs = true
}
dependencies {
kapt 'com.alibaba:arouter-annotation:1.0.4'
}
如果纯java 的module,使用 java方式声明。如果是java+kotlin 或者 纯kotlin的module 使用, kotlin方式声明Arouter。
More than one file was found with OS independent path ‘META-INF/rxjava.properties’
//rx 多个地方引用
packagingOptions {
pickFirst ‘META-INF/*’}
增加这段话,分别在module中
总结:
Arouter 的引入对于项目模块化是很有必要的,在分模块同时会附带N多的依赖异常。除了掌握相关Api,Studio 的模块间依赖,资源依赖解决,同样是很棘手的问题。