Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Eclipse doesn't generate the .apt_generated folder for Butter Knife

I have carefully followed the instructions in the official guide to enable annotations in my Eclipse ADT 3.8.

That is, Annotation Processing and Factory Path are properly configured:

Annotation Processing

Factory Path

My Android application compiles successfully. It runs too, of course, but I get obvious NPEs due to views that are expected to be initialized by Butter Knife stay null.

If I change the configuration to generate, say .apt_generated_foo_bar, Eclipse will create that folder. But empty.

Any ideas on how I can convince Eclipse to create the appropriate classes in .apt_generated?

like image 946
espinchi Avatar asked May 02 '14 03:05

espinchi


2 Answers

This question (and answer) duplicates this one: Butterknife does not create anything in .apt_generated directory

First you need to make sure you have an Android project and not an Android library project because Butterknife handles library projects using a different approach.

To do this click Project Properties and go to the Android section. For further details see the Android documentation:

Then check these settings in project/.factorypath:

<factorypath>
    <factorypathentry kind="WKSPJAR" id="/PotlatchClient/libs/butterknife-5.1.2.jar" enabled="true" runInBatchMode="false"/>
</factorypath>

project/.settings/org.eclipse.jdt.apt.core.prefs:

eclipse.preferences.version=1
org.eclipse.jdt.apt.aptEnabled=true
org.eclipse.jdt.apt.genSrcDir=.apt_generated
org.eclipse.jdt.apt.reconcileEnabled=true

project/.settings/org.eclipse.jdt.core.prefs:

eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.processAnnotations=enabled

Finally do a refresh in Eclipse and clean to do a full rebuild.

The problem with the other suggestion is changing the JDK to 1.7 means you can only target Kitkat (4.4) or higher.

like image 200
Mark Butler Avatar answered Sep 29 '22 09:09

Mark Butler


I had same problem, changed: Project>Properties>JavaCompiler>CompilerComliance level from 1.6 to 1.7 now Clean Project, and it worked

like image 28
subhash Avatar answered Sep 29 '22 11:09

subhash