I am trying to add AndroidAnnotations to Android Studio project that has a gradle build system. Has anyone done this? Can anyone help me with this? I do not even know where to start. I know how to add libraries to gradle but AndroidAnnotations requires 2 jar files and I do not know what should I do.
Asked
Active
Viewed 9,548 times
1 Answers
13
After 4 months I am 4 months older and a little smarter :) If you want to use
Annotations in Android use http://jakewharton.github.io/butterknife/.
It is way better and it is easy to set up :)
Here is what you need to do:
- You need to modify your build.gradle file (build file for your application module)
First add dagger and annotations version. You can also declare them in dependencies. This is just more convenientwhen you have a lot of dependencies.
ext.daggerVersion = '1.0.0';
ext.androidAnnotationsVersion = '2.7.1';
configurations {
apt
}
Add dependencies:
dependencies {
apt "com.googlecode.androidannotations:androidannotations:${androidAnnotationsVersion}"
compile "com.googlecode.androidannotations:androidannotations-api:${androidAnnotationsVersion}"
apt "com.squareup.dagger:dagger-compiler:${daggerVersion}"
compile "com.squareup.dagger:dagger:${daggerVersion}"
}
Finnaly, add this. This adds path for compiler and creates a dir for generated files (this dir will be called apt_generated):
android.applicationVariants.each { variant ->
aptOutput = file("${project.buildDir}/source/apt_generated/${variant.dirName}")
println "****************************"
println "variant: ${variant.name}"
println "manifest: ${variant.processResources.manifestFile}"
println "aptOutput: ${aptOutput}"
println "****************************"
variant.javaCompile.doFirst {
println "*** compile doFirst ${variant.name}"
aptOutput.mkdirs()
variant.javaCompile.options.compilerArgs += [
'-processorpath', configurations.apt.getAsPath(),
'-AandroidManifestFile=' + variant.processResources.manifestFile,
'-s', aptOutput
]
}
}
Oh, yes, and after you build your aplication, you need to go to project root/build/apt_generated, right click on folder and set "Mark as source root"

Morten Holmgaard
- 7,484
- 8
- 63
- 85

Koc
- 232
- 2
- 12
-
2Why there is Dagger needed? It is somehow related to Android Annotations? – Tomáš Hubálek Oct 21 '13 at 08:19
-
1is the annotations jar downloaded automatically, or do i need to add it? myself? – SamAko Oct 27 '13 at 17:32
-
It didn't work for me. Instead, I used a slightly different version posted here: http://stackoverflow.com/questions/19351168/gradle-annotations-flavors-wont-run-annotations-processor – Ferran Maylinch Dec 04 '13 at 10:37
-
2compile "com.googlecode.androidannotations:androidannotations api:${androidAnnotationsVersion}" should be compile "com.googlecode.androidannotations:androidannotations-api:${androidAnnotationsVersion}" .. notice the missing '-' in yours. – praneetloke Dec 16 '13 at 11:56