ARouter 配置
APP build 中
- 纯java
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'
...
}
- kotlin and java
apply plugin: 'kotlin-kapt' // 添加到最顶部
defaultConfig{
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName(), AROUTER_GENERATE_DOC: "enable"]
}
}
}
kapt {// 与 dependencies 平级
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
dependencies{
implementation 'com.alibaba:arouter-api:1.5.1'
annotationProcessor 'com.alibaba:arouter-compiler:1.5.1'
kapt 'com.alibaba:arouter-compiler:1.5.1'
}
代码初始化
Application 中配置如下代码
if (isDebug){//开发模式下
ARouter.openLog();
ARouter.openDebug();
}
ARouter.init(this);
- 纯kotlin
把kotlin java 混用的去掉java的就行,去掉之后还不行 去翻ARouter文档,Issues里边有整理。
注意:配置完成后,大概率是as直接运行就可以了,但是有一点需要注意,如果你配置了混淆,那不好意思,打完release包会出现如标题所示错误,请注意将下方配置加入混淆 proguard-rules.pro 文件中
ARouter 配置混淆处理
# ARouter 混淆处理 start
-keep public class com.alibaba.android.arouter.routes.**{*;}
-keep public class com.alibaba.android.arouter.facade.**{*;}
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
# 如果使用了 byType 的方式获取 Service,需添加下面规则,保护接口
-keep interface * implements com.alibaba.android.arouter.facade.template.IProvider
# 如果使用了 单类注入,即不定义接口实现 IProvider,需添加下面规则,保护实现
# -keep class * implements com.alibaba
如果对你有用,不胜荣幸。