2016-11-19 77 views
0

我已经安装了我build.gradle看起来是这样的:的Android ButterKnife

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.3.0' 
    compile 'com.jakewharton:butterknife:8.4.0' 
} 

我loginActivity看起来是这样的:

package com.example.egen.forum; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.Toast; 
import butterknife.ButterKnife; 
import butterknife.OnClick; 

public class LoginActivity extends AppCompatActivity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 
     ButterKnife.bind(this); 
     Toast.makeText(getApplicationContext(), "Your toast message.", 
       Toast.LENGTH_SHORT).show(); 
    } 

    @OnClick(R.id.btnLogin) public void test() { 
     Toast.makeText(getApplicationContext(), "Your toast message.", 
       Toast.LENGTH_SHORT).show(); 
    } 
} 

第二敬酒不出来。我在这里做错了什么?在您的build.gradle

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

还有:

回答

2

here。不喜欢它的GitHub page描述:

dependencies { 
    compile 'com.jakewharton:butterknife:8.4.0' 
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0' 
} 

并应用插件:

apply plugin: 'com.jakewharton.butterknife' 

否则,你的代码看起来不错。

说明:ButterKnife库使用注释处理器来生成提供对视图的引用的代码并执行ButterKnife注释的方法。如果您重建项目,并且AndroidStudio显示@OnClick带注释的方法未使用,则说明有些问题。如果注释处理器提供并正常工作,它应显示为已使用并导致生成的方法。

+0

嗨男人..我与rxjava和buttknife(7)一起工作。所以rxjava和你的刀锋一起工作对你来说很好。我有问题。 – marlonpya

+0

@marlonpya RxJava和ButterKnife是两个不同的,不相关的库,所以我不知道你的意思是“rxjava和butterknife一起工作良好”。发布问题,如果你有问题。 – maciekjanusz

+0

没关系。由于buttknife无法正常工作,因此在预喷中存在问题。不要忘记添加绑定 – marlonpya

1

加入这一行。

对你还没有为ButterKnife代码生成注释处理器的详细信息