Android javax.annotation.processing 包丢失。不能使用抽象处理器

Android javax.annotation.processing package missing. Can't use AbstractProcessor

由于某种原因 javax.annotation.processing 包丢失。 我发现 this Whosebug post 关于同样的问题,但它给出了损坏的 link 作为答案。尝试了 google 建议的一些方法,但没有结果。

我假设您想在 Android Studio 中编写注释处理器,并且在这种情况下有一个非常常见的项目结构:Android app,Java lib with @interface 定义和 Java 带有 AbstractProcessor 个子类的库。

我 运行 遇到了同样的问题,有一件事帮助了我:

  • 从项目布局中完全删除 Java 模块。
  • 确保只有您的代码幸存下来,删除模块目录中的所有内容(或者只删除 .iml 文件就足够了吗?)。
  • 再次将您的来源添加为模块 Java Library。现在应该一切正常了。

我认为那是因为我首先将模块添加为 Android 库,然后手动将其更改为看起来像 Java 库(gradle java 插件的默认结构).但是 .iml 还是来自 Android lib 模块结构。

上面vganin给出的解决方法。 我的问题是我创建了一个 Android 图书馆项目(错误地)而不是 Java 图书馆项目。

在我的例子中,我同时使用了 android 库插件和基础插件:

plugins {
    id 'com.android.library'
    id 'base'
}

这个有效:

plugins {
    id 'com.android.library'
}