如何让黄油刀工作



我使用Butterknife为我的android项目。我以前用过这个,但由于某种原因,它不再适用于新的更新。

下面是我的设置:

(App Module) build.gradle:

compile 'com.jakewharton:butterknife:8.4.0'

:

@BindView(R.id.navigation_pager) ViewPager mViewPager;
/.../
@Override
protected void onCreate(Bundle savedInstanceState) {
    /...
    /...
    ButterKnife.bind(this);
异常堆栈

:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)' on a null object reference

为了让Butterknife工作,我缺少什么?

谢谢。

您需要添加:

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
Project gradle文件

并添加:

apt 'com.jakewharton:butterknife-compiler:8.4.0'

and this at top:

apply plugin: 'android-apt'

让butterknife工作

更多信息请参考此链接:https://github.com/JakeWharton/butterknife

配置您的项目级构建。Gradle要包含'android-apt'插件:

buildscript {
  repositories {
    mavenCentral()
   }
  dependencies {
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
  }
}

然后,在模块级构建中应用'android-apt'插件。gradle并添加Butter Knife依赖项:

apply plugin: 'android-apt'
android {
  ...
}
dependencies {
  compile 'com.jakewharton:butterknife:8.4.0'
  apt 'com.jakewharton:butterknife-compiler:8.4.0'
}

class ExampleActivity extends Activity {
    @BindView(R.id.navigation_pager) ViewPager mViewPager;
      @Override public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.simple_activity);
        ButterKnife.bind(this);
      viewPager.setAdapter(new CustomPagerAdapter(this));
    }
}
**MAKE SURE TO CALL setAdapter() only after ButterKnife.bind(this);**

最新更新