问题
I would like to do some annotation processing based on the example in the following link: http://www.zdnetasia.com/writing-and-processing-custom-annotations-part-3-39362483.htm.
However, I would like to implement this in my Android project, and it seems I cannot use the package with the android platform. Do I need to add an external jar or is there something I'm missing?
Thanks.
回答1:
The javax.annotation.processing
package is not included in Android, but the Android VM team describes how to include extra javax
packages here - it might be applicable to your question.
回答2:
The javax.annotation.processing package is not included in Android. You don't need to include this inside your compiled app module. You just need this dependency for your compiler/processor module during build time. Therefore, inside your app's build.gradle
you should add the following after including your annotation processor:
provided 'org.glassfish:javax.annotation:10.0-b28'
回答3:
There is a much easier way if you use Android Studio / Gradle.
I found the following looking through the answers of the question How do I add javax.annotation.Generated to Java SE 5?:
For a Gradle build the dependency should be
compile 'org.glassfish:javax.annotation:10.0-b28'
回答4:
Simply adding compile 'javax.annotation:javax.annotation-api:1.2' should do the trick.
see here for all available versions: https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api
回答5:
compileOnly 'org.glassfish:javax.annotation:10.0-b28'
回答6:
I find a method in butterknife. Add this in build.gradle
:
compile files(org.gradle.internal.jvm.Jvm.current().getJre().homeDir.getAbsolutePath()+'/lib/rt.jar')
来源:https://stackoverflow.com/questions/9650808/android-javax-annotation-processing-package-missing