2016-06-13 18 views
1

我加黄油刀库摇篮这样的:ButterKnife安卓:无法添加监听器查看

dependencies { 
    compile 'com.jakewharton:butterknife:8.0.1' 
    ... 
} 

创建一个Button ID为btnPress。在我的Activity中,当我试图用@onClick(R.id.btnPress)添加方法时,在运行应用程序时,该方法不执行。

活动:

public class MainActivity extends AppCompatActivity { 

    @BindView(R.id.btnPress) 
    Button btnPress; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     ... 
     ButterKnife.bind(MainActivity.this); 
    } 

    //This method is not being called when Button is pressed. 
    @OnClick(R.id.btnPress) 
    void onPress() { 
     ... 
    } 
} 
+0

你叫'ButterKnife.Bind'之前调用'setContentView'? 并确保您的布局和视图ID。 –

+0

@MohammadRahchamani是的,我在绑定前设置视图。我检查过布局ID,它们是相同的。 –

+0

您是否在您的模块级别的build.gradle和classpath中添加了'apt'com.jakewharton:butterknife-compiler:8.0.1'' com.neenbedankt.gradle.plugins:android-apt:1.8'' in你的项目级'build.gradle'? –

回答

1

以下是我解决了这个问题:

首先,在顶层的build.gradle文件,包括:

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
在buildscript依赖

,如:

buildscript { 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.0.0' 
     classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
    } 
    } 

然后,在您的模块的build.gradle文件中,包括顶部的apply plugin: 'com.neenbedankt.android-apt'

现在包括在模块级的build.gradle ButterKnife库和编译器:

dependencies { 
    compile 'com.jakewharton:butterknife:8.0.1' 
    apt 'com.jakewharton:butterknife-compiler:8.0.1' 
    ... 
}