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'
}
由于某种原因 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'
}