美文网首页
组件化开发遇到的问题

组件化开发遇到的问题

作者: suniney | 来源:发表于2019-01-28 17:01 被阅读19次

    组件化开发遇到的问题

    1、Suggestion: add 'tools:replace="android:name"'
    app 一起运行时,application重复命名问题

    自定义 Application 需要声明在 AndroidManifest.xml 中。其次,每个 Module 都有该清单文件,但是最终的 APK 文件只能包含一个。因此,在构建应用时,Gradle 构建会将所有清单文件合并到一个封装到 APK 的清单文件中。
    所以,需要放在application的东西都放在baseApplication中,如必须在不同组件中的Manifest中使用,使用tools:repalce 替代。

    合并的优先级是:App Module > Library Module

    2、

    Aroute使用问题锦囊

    1、资源命名重复,引用不正确

    在不同moudle下要添加
    resourcePrefix "login_"
    防止相同文件名出现指向错误 login_activity_main
    然后在对应的布局资源文件前面添加
    不能同时使用 会报There is no route match the path

    2、There is no route match the path,no group

    一定要让所有需要ARouter的Moudle中builde.gradle添加annotationProcessor 'com.alibaba:arouter-compiler:1.1.4'
    并且在主APP的Moudle中关联所有需要的模块,否则会提示There is no route match the path,no group

    组件化Butterknife使用问题锦囊

    1、在library中使用R2

    (1)在主程序的build.gradle中
    
     dependencies {
            classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' // 添加的部分
            classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
    }
    

    (2)在对应moudle的build.gradle

    compile "com.jakewharton:butterknife:$rootProject.butterknife"
    annotationProcessor "com.jakewharton:butterknife-compiler:$rootProject.butterknife"
    

    (3)在使用到butterknife的library的gradle中

     apply plugin: 'com.android.library'
     apply plugin: 'com.jakewharton.butterknife'
    

    (4)R变为R2,swicth case 改为if else

     @OnClick({R2.id.xxx, R2.id.xxx, R2.id.xxx, R2.id.xxx, R2.id.xxx})
        public void onViewClicked(View view) {
            int i = view.getId();
            if (i == R.id.xxx) {
            } else if (i == R.id.xxx) {
            } else if (i == R.id.xxx) {
            } else if (i == R.id.xxx) {
            } else if (i == R.id.xxx) {
            }
        }
    

    相关文章

      网友评论

          本文标题:组件化开发遇到的问题

          本文链接:https://www.haomeiwen.com/subject/zvwydqtx.html