Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top