使用ButterKnife无法inject view的解决办法

使用ButterKnife做android开发时,发现无法inject,如下,tvInfo总是null。

	@InjectView(R.id.textView1Info) TextView tvInfo;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		getWindow().requestFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.main);
		
		ButterKnife.inject(this);
		tvInfo.setText("test");// tvInfo is null.
	}

后来在官网上找到解决办法,如下:

http://jakewharton.github.io/butterknife/ide-eclipse.html

Eclipse Configuration

  1. Right click on your project in the Package Explorer. Head to Java Compiler → Annotation Processing and check "Enable project specific settings".

    Ensure the other annotation processing settings are the same as shown below:

  2. Expand the Annotation Processing section and select Factory Path. Check "Enable project specific settings" and then click "Add JARs…". Navigate to the project's libs/ folder and select the Butter Knife jar.

  3. Click "Ok" to save the new settings. Eclipse will ask you to rebuild your project to which you should click "Yes"
  4. Make sure that the .apt_generated/ folder is in your project root. It should contain files like YOURACTIVITY$$ViewInjector.java. If these files are not present trigger a clean build by selected Project → Clean. This folder and files should not be checked into revision control.
  5. Lastly, under "Java Compiler", make sure that the Compiler compliance level is set to Java version 1.6 at minimum.
原文地址:https://www.cnblogs.com/yahb/p/4201275.html