使用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:

    使用ButterKnife无法inject view的解决办法_第1张图片

  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.

    使用ButterKnife无法inject view的解决办法_第2张图片

  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.

你可能感兴趣的:(inject)