Android javax.annotation.processing 包丢失

问题描述 投票:0回答:10

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

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

谢谢。

android annotations annotation-processing
10个回答
23
投票

Android 中不包含 javax.annotation.processing 包。您不需要将其包含在编译的应用程序模块中。您只需要在构建期间为您的编译器/处理器模块提供此依赖项。因此,在应用程序的

build.gradle
中,您应该在包含注释处理器后添加以下内容:

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

18
投票

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

我在查看问题的答案时发现以下内容如何将 javax.annotation.Generate 添加到 Java SE 5?

对于 Gradle 构建,依赖关系应该是

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


11
投票

Android 中不包含

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


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

将这两个依赖项添加到您的

build.gradle
文件中,这样就可以了。


3
投票

仅编译 'org.glassfish:javax.annotation:10.0-b28'


2
投票

只需添加编译'javax.annotation:javax.annotation-api:1.2'就可以了。

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


2
投票

对于 kotlin DSL,您需要使用

compileOnly("org.glassfish:javax.annotation:10.0-b28")

对于groovy DSL,您需要使用

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


0
投票

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

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

它会像魅力一样发挥作用。请尝试一下!


0
投票

这对我有用

 compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 }


-4
投票

我在butterknife中找到了一个方法。将其添加到

build.gradle

compile files(org.gradle.internal.jvm.Jvm.current().getJre().homeDir.getAbsolutePath()+'/lib/rt.jar')
© www.soinside.com 2019 - 2024. All rights reserved.