你的位置:首页 > 操作系统

[操作系统]Android studio ButterKnife8.1.0空指针/相关配置及其简单使用


ButterKnife 是这两年比较流行的开源库,是一个View注入框架,其主要功能是代替findViewByid()方法。同时还能够快速的添加监听事件,能够更容易的实现MVVM模式,是非常实用的工具之一。

 

刚开始使用ButterKnife的时候很多人可能会遇到NullPointerException或者“找不到符号”,这皆是由于ButterKnife配置有误。下面我们来详细的来说明ButterKnife的配置

 

首先我们需要导入ButterKnife

如图

 

也可以在这里添加

 

同时还需要安装ButterKnife的插件

这里我已经安装好了,看起来有一些不同。没安装的时候先搜索然后点下面的按钮就会出来了

 

然后配置

 

 

 

注意,这里如果没有完成上面安装插件的步骤会无法识别apt()

 

还不理解的话,下面就贴出完整的build.gradle吧

 1 // Top-level build file where you can add configuration options common to all sub-projects/modules. 2  3 buildscript { 4   repositories { 5     jcenter() 6   } 7   dependencies { 8     classpath 'com.android.tools.build:gradle:2.1.0' 9     classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'10     // NOTE: Do not place your application dependencies here; they belong11     // in the individual module build.gradle files12   }13 }14 15 allprojects {16   repositories {17     jcenter()18   }19 }20 21 task clean(type: Delete) {22   delete rootProject.buildDir23 }

 

 

 1 apply plugin: 'com.android.application' 2  3 android { 4   compileSdkVersion 23 5   buildToolsVersion "23.0.3" 6  7   defaultConfig { 8     applicationId "com.lcc.fjnu.damuvideobysohu" 9     minSdkVersion 1410     targetSdkVersion 2311     versionCode 112     versionName "1.0"13   }14   buildTypes {15     release {16       minifyEnabled false17       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'18     }19   }20 }21 22 buildscript {23   repositories {24     mavenCentral()25   }26   dependencies {27     classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'28   }29 }30 31 apply plugin: 'com.neenbedankt.android-apt'32 33 dependencies {34   compile fileTree(include: ['*.jar'], dir: 'libs')35   testCompile 'junit:junit:4.12'36   compile 'com.android.support:appcompat-v7:23.3.0'37   compile 'com.android.support:design:23.3.0'38   compile 'com.jakewharton:butterknife:8.1.0'39   apt 'com.jakewharton:butterknife-compiler:8.1.0'40 }

 

 以上就是配置的过程

再说一点ButterKnife8.1.0的绑定方法是@BindView 之前的版本是@Bind,再之前是@InjectView.

具体的说明可以参照其官网(未墙) http://jakewharton.github.io/butterknife/

这里会给出一个简单的范例:

 1 public class MainActivity extends AppCompatActivity { 2  3   @BindView(R.id.toolbar) 4   Toolbar mToolbar; 5   @BindView(R.id.tabs) 6   TabLayout mtabs; 7   @BindView(R.id.appbar) 8   AppBarLayout mappbar; 9   @BindView(R.id.container)10   ViewPager container;11   @BindView(R.id.fab)12   FloatingActionButton fab;13 ......}

 

不需要重新实例化以及findviewbyid(),代码变得更简洁明了