kotlin和java混合模块开发时,kotlin中和java中Arouter的配置方式

前提


 项目结构: app作为应用模块 (kotlin模块),book作为库模块(java模块),base(java模块)作为顶层配置模块
 模块关系:app和book都依赖base这个模块

1.Arouter配置

1.1在base模块的bulid.gradle中添加依赖配置


  //arouter引入
    api 'com.alibaba:arouter-api:1.5.0'
    annotationProcessor 'com.alibaba:arouter-compiler:1.2.2'

1.2在kotlin模块(app模块)添加依赖配置

1.2.1添加如下依赖


 //网上资料说是做下面配置
 kapt {
    arguments {
        arg("moduleName", project.getName())
    }
  }
  //但是做上面那种配置方式,我的项目一直报错,所以我这个地方还是按照java的配置方式来,如下:
  javaCompileOptions {
            annotationProcessorOptions {
                arguments = [AROUTER_MODULE_NAME: project.getName()]
            }
        }

1.2.2添加如下依赖


  //上面虽然采用了java配置方式,但是这个地方要采用kapt来进行引入依赖
   //arouter引入
    api project(':base')
    kapt 'com.alibaba:arouter-compiler:1.2.2'

1.3在java模块(book)中添加依赖配置

1.3.1添加如下依赖


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

1.3.2添加如下依赖


  //arouter引入
    api project(':basemodule')
    annotationProcessor 'com.alibaba:arouter-compiler:1.2.2'

1.4在项目的build.gradle配置如下代码:


   classpath "com.alibaba:arouter-register:1.0.2"

2.注意点:


  1.所有使用了Arouter的module都必须被app模块依赖
  2.所有使用了Arouter的module都必须配置上面的基本配置

3.Arouter基本使用流程

3.1对Arouter进行初始化,在Application中的onCreate中配置


       //debug模式下必须配置这两句话,而且必须在初始化ARouter之前
        ARouter.openLog();
        ARouter.openDebug();
      //初始化Arouter
      ARouter.init(this);

3.2简单使用


//1.第一步:配置path
@Route(path=CommonUrl.HISTORY_PATH)
public class HistoryActivity extends AppCompatActivity {
    //第三步:获取传过来的参数
    @Autowired
    String key1;
    @Autowired
    Long key3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_history);
        ARouter.getInstance().inject(this);
        Log.d("HistoryActivity",key1+"-"+key3);
    }
}
//第二步:调用方式
 ARouter.getInstance().build(CommonUrl.HISTORY_PATH)
                   .withLong("key1", 666L)
                   .withString("key3", "主页面第一条数据")
                   .navigation()
 //下面是配置path的类
 public class CommonUrl {
    public static final String HISTORY_PATH="/history/HistoryActivity";
    public static final String APP_PATH="/app/MainActivity";
 }

你可能感兴趣的:(android小问题)