美文网首页
ButterKnife 在AndroidStudio中的配置

ButterKnife 在AndroidStudio中的配置

作者: 小猪x | 来源:发表于2017-11-10 09:53 被阅读0次

    github地址:github-butterknife

    官网的方法怎么配都有坑。。。无语

    正确姿势如下

    Android library使用butterknife配置

    在library配置butterknife8.4.0需要在项目gradle,主工程gradle、library的gradle中分别,如下:

    1、项目gradle

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.1'
    
            classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' // 添加的部分
            classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0' // 添加的部分
    
        }
    }
    

    一、App主工程gradle配置:添加以下2段配置

    1、添加插件

    apply plugin: 'com.neenbedankt.android-apt'
    

    2、添加引用

    compile 'com.jakewharton:butterknife:8.4.0'
    apt 'com.jakewharton:butterknife-compiler:8.4.0'
    
    image.png

    二、library的gradle配置:添加以下两段配置

    1、添加插件

    apply plugin: 'com.jakewharton.butterknife'    //比主工程多了这个插件
    apply plugin: 'com.neenbedankt.android-apt'
    

    2、添加引用

    compile 'com.jakewharton:butterknife:8.4.0'
    apt 'com.jakewharton:butterknife-compiler:8.4.0'
    
    image.png

    每个library如果想使用butterknife使用,都要像第二点那样去添加配置 真他妈的蛋疼

    可以写一个通用的common.gradle
    然后只在通用common.gradle配置,所有的library都有了 不需要每个都单独去配置

    library使用注意

    然后如果library要使用butterknife, 需要使用每个library对应R2 每个library都会建立成一个R2文件

    官方也有写明


    image.png

    看是否能正常使用。可以查看app或者每个library build出来的文件


    image.png

    至于8.4版本。可以换成最新版本(待验证,是测试了8.4版本)

    使用参考:

    Android Butterknife 8.4.0 使用方法总结

    Android Butter Knife 框架——最好用的View注入

    注意:
    1.activity - 需要绑定在setContentView后面。否则查找不到资源

     setContentView(R.layout.activity_butterknife);
     ButterKnife.bind( this ) ;
    

    2.fragment - 是否需要绑定 反绑定,

    Unbinder unbinder ;
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = super.onCreateView(inflater, container, savedInstanceState);
        unbinder = ButterKnife.bind(this, rootView);
        return rootView;
    }
    
    @Override
    public void onDestroyView() {
        super.onDestroyView();
        unbinder.unbind();
    }
    

    3.自定义view - 只需要绑定对应的总布局就行

        View view = inflate(context, getLayoutResId(), this);
        ButterKnife.bind(view, this);
    

    4.绑定的参数 不能定义 private类型

    5.Android中ViewPager + Fragment使用ButterKnife注解时出现空指针NullPoint的情况

    相关文章

      网友评论

          本文标题:ButterKnife 在AndroidStudio中的配置

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