Android Studio接入ARouter

最近在学习组件化,看到业界都在使用阿里的ARouter框架

想写个demo集成进来却发现其官方文档比较含糊,项目一直编译不通过,后来在遍查文章才脱坑,特此把脱坑之路娓娓道来。

阿里巴巴 ARouter框架 Github

这套路框架解决的是组件化开发中,组件之间(Module与Module)之间通信的问题,我之前写过一个不用三方库的组件间通信的demo

Android模块间通信(不使用三方库可以看看此博客)

当时觉得写完之后还小有成就感,没有引用任何一个依赖库,纯原生,但是使用起来才发现要定义很多的常量,而且还得修改一些“核心”源码,这是极其不方便和极其不安全的,所以静下心来研究了阿里的这套框架

1 不要慌集成,因为你不知道在哪个build.gradle文件中集成

点击查看具体如何集成!

2 base 模块 build.gradle中

 compile ('com.alibaba:arouter-api:1.3.1'){ exclude group: 'com.android.support' }  

3 业务模块 build.gradle 中

defaultConfig {  
        ...  

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

    }  


dependencies {  
    ...  

    annotationProcessor 'com.alibaba:arouter-compiler:1.1.4'  
    implementation project(':base')//base模块里添加依赖  

} 

4 主模块 build.gradle 中

defaultConfig {  
        ...  

        //Enabling multidex support.  
        multiDexEnabled true  
    }  


dependencies {  
    ...  
    compile 'com.android.support:multidex:1.0.1'  

} 

5 主模块中Application:需要在AndroidManifest.xml中配置并且在代码中初始化

public class MyApplication extends Application {  


    @Override  
    public void onCreate() {  
        super.onCreate();  

        initRouter(this);  
    }  


    public static void initRouter(Application application) {  
        if (BuildConfig.DEBUG) {  
            ARouter.openLog();     // 打印日志  
            ARouter.openDebug();   // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)  
        }  
        ARouter.init(application);  
    }  


}

猜你喜欢

转载自blog.csdn.net/losingcarryjie/article/details/80472047
今日推荐