2016-06-13 19 views
1

Ich habe Buttermesser Bibliothek Gradle wie folgt aus:butter Android: Kann Listener hinzufügen to View

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

eine Button mit id btnPress Erstellt. Wenn ich in meiner Aktivität versucht habe, eine Methode mit @onClick(R.id.btnPress) hinzuzufügen, wird die Methode beim Ausführen der Anwendung nicht ausgeführt.

Aktivität:

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

rufen Sie 'setContentView' vor' ButterKnife.Bind' Aufruf? und vergewissern Sie sich über Ihre Layout- und Sichten-ID. –

+0

@MohammadRahchamani Ja, ich setze View vor dem Binden. Ich habe Layout-IDs überprüft, sie sind gleich. –

+0

Haben Sie 'apt 'com.jakewharton: butterknife-compiler: 8.0.1'' in Ihrem Modul-Level' build.gradle' und 'classpath' com.neenbedankt.gradle.plugins: android-apt: 1.8'' in hinzugefügt Ihre Projektebene 'build.gradle'? –

Antwort

1

Hier ist, wie ich dieses Problem behoben:

Zuerst in der Top-Level-build.gradle Datei enthalten:

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

in den buildscript Abhängigkeiten, wie:

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

Fügen Sie dann in der build.gradle-Datei Ihres Moduls apply plugin: 'com.neenbedankt.android-apt' nach oben ein.

sind nun butter Bibliothek und Compiler in Modulebene build.gradle:

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