1、在app的build文件中配置
android {
defaultConfig {
javaCompileOptions {
annotationProcessorOptions {
arguments = [ eventBusIndex : 'com.xunua.MyEventBusIndex' ]//这里随便填入一个都可以,前面的是包名,最后一个是文件名,比如我这个 构建好之后就build-->rebuild之后。切换到project视图,
//在这个路径生成了一个MyEventBusIndex文件, app\build\generated\ap_generated_sources\debug\out\com\xunua\MyEventBusIndex.java
}
}
}
}
dependencies {
def eventbus_version = '3.2.0'
implementation "org.greenrobot:eventbus:$eventbus_version"
annotationProcessor "org.greenrobot:eventbus-annotation-processor:$eventbus_version"
}
2、在Application中的onCreate()中写入这条
EventBus.builder()
.addIndex(new MyEventBusIndex())//MyEventBusIndex就是我们在build中配置好的文件,可以点进去看到这个文件里面存好了我们在项目中写了@Subscribe的方法的所在类的类名和方法名。
.installDefaultEventBus();//这个意思就是将现在对EventBus的修改应用到EventBus.getDefault()中,这样的话每次注册都是用的我们修改好了的。
3、(个人理解,未使用)如果要给库添加这个索引的话 那么就在库的build文件按照上面第一步做一次(arguments 的路径 不要与app的文件名相同),然后再到当前App(不是库,是app!)的Application类中再增加一个addIndex(new 这个库生成的索引文件名());
索引文件目录:
eventbus_usage\app\build\generated\ap_generated_sources\debug\out\com\xunua\MyEventBusIndex.java