Thrift:无法解析导入javax.annotation

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

我使用 Eclipse Mars (M1) 作为我的 IDE。今天,我使用 Apache Thrift 0.9.2(最新稳定版本)为 Android 项目生成了服务的 Java 代码。此版本(与版本 0.9.1 不同)使用 javax.annotation 包中的“生成”注释,用于添加一些可提取的文档。它在每个生成的类之前添加如下行:

@Generate(value = "由 Thrift 编译器自动生成 (0.9.2)", date = "2014-11-30")

但令人惊讶的是,Eclipse 抱怨 javax.annotation 包。它抛出错误“无法解析导入 javax.annotation”。我的项目的Java编译器合规级别是1.6,其最低Android API版本是API 8(Android 2.2)。我该如何修复这个错误?

import annotations thrift
3个回答
4
投票

不幸的是 javax.* 下的大多数包都不包含在 Android 的 JDK 中,因此您需要手动添加您需要的包。 这里解释了不包含这些包的原因。

不幸的是,有多个版本的 javax.annotation 包可供下载,其中一些不包含“生成”注释类(javax.annotation. generated)。幸运的是,this jar 文件确实包含该特定的注释类。因此,如果您不使用 Gradle、Ant 或 Maven 等任何构建系统,您所需要做的就是将 .jar 文件包含在项目的某个目录中(例如 lib/),然后将此 jar 库添加到您的构建路径。如果您使用 Ant,请按照第一个链接操作。


0
投票

我遇到了同样的问题,我通过将此依赖项添加到我的 build.gradle 文件来修复它

compile group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'

0
投票

我知道这已经很旧了,但我只是偶然发现它,我想我会分享一个解决您问题的替代解决方案。

您可以使用以下选项简单地生成 Java thrift 文件:

generated_annotations=suppress
生成器将生成没有 javax 注释的
.java
文件。

© www.soinside.com 2019 - 2024. All rights reserved.