2016-11-19 9 views
0

は次のようになります。第二トーストは表示されませんアンドロイドButterKnife

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(); 
    } 
} 

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は、このようになります。私はここで間違って何をしていますか?あなたのbuild.gradleに同様

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

答えて

2

ためhereを参照してください。

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

をし、プラグインを適用します:GitHub pageに説明したようにそれを行う

apply plugin: 'com.jakewharton.butterknife' 

そうでない場合は、あなたのコードは正常に見えます。

説明:ButterKnifeライブラリは、ビューへの参照を提供し、ButterKnife注釈付きメソッドを実行するコードを生成するために注釈プロセッサを使用します。あなたのプロジェクトを再構築し、AndroidStudioが@OnClick注釈付きメソッドが使用されていないことを示している場合、何かが間違っています。アノテーションプロセッサが提供され、正しく動作する場合、アノテーションプロセッサは使用されたものとして表示され、生成されたメソッドにつながります。

+0

私はrxjavaとbuttknife(7)で作業しています。 rxjavaはバターナイフでうまく働いていますか?私は問題があります。 – marlonpya

+0

@marlonpya RxJavaとButterKnifeは2つの異なる無関係のライブラリなので、 "rxjavaがバターナイフでうまく動作している"という意味がわかりません。問題がある場合は質問を投稿してください。 – maciekjanusz

+0

これは問題ありません。バットナイフは機能しないので、問題が発生します。追加のバインドを忘れないでください – marlonpya

1

は、この行を追加します。

はあなたがButterKnifeコード生成のための注釈プロセッサが含まれていない詳細情報

関連する問題