我安装了ButterKnife --我的build.gradle如下所示:
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();
}
}第二个祝酒词没有出现。我在这里做错什么了?
发布于 2016-11-19 15:11:00
您还没有包括用于生成ButterKnife代码的注释处理器。像在GitHub页面上描述的那样
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注释的方法是未使用的,那么有些事情是错误的。如果注释处理器被提供并正确工作,它应该显示为已使用的,并导致生成的方法。
发布于 2016-11-19 15:10:46
增加这一行:
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'在你的build.gradle中也是如此。
有关更多信息,请参见这里
发布于 2016-11-19 15:18:05
好吧,蝴蝶刀是昨天,用数据库代替:https://developer.android.com/topic/libraries/data-binding/index.html。这是几乎相同的开箱即用的工具
https://stackoverflow.com/questions/40694343
复制相似问题