Android javax.annotation.processing Package missing



我想根据以下链接中的示例进行一些注释处理:http://www.zdnetasia.com/writing-and-processing-custom-annotations-part-3-39362483.htm.

然而,我想在我的Android项目中实现这一点,而且我似乎无法在Android平台上使用该包。我需要添加一个外部罐子吗?还是缺少什么?

谢谢。

javax.annotation.processing包未包含在Android中。您不需要将其包含在已编译的应用程序模块中。您只需要在构建时为编译器/处理器模块提供这种依赖关系。因此,在您的应用程序的build.gradle中,您应该在包含注释处理器后添加以下内容:

provided 'org.glassfish:javax.annotation:10.0-b28'

如果使用Android Studio/Gradle,有一种更简单的方法。

我通过查看问题的答案发现了以下内容:如何将javax.annotation.Generated添加到Java SE 5?:

对于Gradle构建,依赖关系应为

compile 'org.glassfish:javax.annotation:10.0-b28'

javax.annotation.processing软件包未包含在Android中,但Android VM团队描述了如何在此处包含额外的javax软件包-这可能适用于您的问题。

implementation 'org.glassfish:javax.annotation:10.0-b28'
compileOnly 'com.github.pengrad:jdk9-deps:1.0'

将这两个依赖项添加到build.gradle文件中,这将起作用。

compileOnly'org.glassfish:javax.annotation:10.0-b28'

只需添加compile‘javax.annotation:javax.annuation-api:1.2’就可以了。

有关所有可用版本,请参阅此处:https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api

对于kotlin DSL,您需要使用compileOnly("org.glassfish:javax.annotation:10.0-b28")

对于groovy DSL,您需要使用compileOnly 'org.glassfish:javax.annotation:10.0-b28'

我也面临同样的问题。所以一般来说,当我们的jdk版本达到8+时,我们会面临这个问题。因此,对于jdk8+,您只需要在build.gradle(:app)文件中添加以下依赖项。

compileOnly 'com.github.pengrad:jdk9-deps:1.0'

它会像符咒一样发挥作用。请试一试!

我在黄油刀中找到了一个方法。将其添加到build.gradle:中

compile files(org.gradle.internal.jvm.Jvm.current().getJre().homeDir.getAbsolutePath()+'/lib/rt.jar')

相关内容

最新更新