我正在尝试在我的项目中使用java 8,为此我添加了jack编译器。
启用插孔后,我开始遇到使用注释处理的库的问题,并在网上查看我读到需要android studio 2.2和com.android.tools.build:gradle:2.2.0-alpha6来编译生成的库来自注释的代码。
我下载Android Studio 2.2预览版6并将我的项目转换为它。之后我发现不再支持apt gradle插件,然后我需要将使用apt的每个依赖项更改为使用新的annotationProcessor选项。
例如:
apt "org.projectlombok:lombok:$rootProject.lombokVersion"
到
annotationProcessor "org.projectlombok:lombok:$rootProject.lombokVersion"
现在,如果我使用“make project”,项目编译没有问题,但是如果我尝试执行它,那么应该通过注释生成代码的错误。
当我打开项目时,我收到来自lombok插件的警告“注释处理似乎已禁用该项目”。当我打开项目设置并转到“Build - > Compiler”时,我找不到Annotation Processors。
所以,我的问题是:如何在Android Studio 2.2中启用注释处理器?此功能已被禁用?如果是,我如何从注释中生成代码?
- EDIT-- 我正在制作PullRequest来改变项目以使用Java8进行编译,你可以在这里检查PR:https://github.com/jonathanrz/myexpenses-android/pull/57
答案 0 :(得分:96)
关闭项目。在"欢迎使用Android Studio"对话框单击"配置"在右下角。
然后,
设置>构建,执行,部署>编译器>注释处理器。勾选'启用注释处理'。
如果这不起作用。从"欢迎使用Android Studio"删除项目对话框并从新的开放。
为我工作。
答案 1 :(得分:42)
答案 2 :(得分:30)
您可以在 Android Studio 2.3 中启用注释处理器而不关闭您的项目:
File -> Other Settings -> Default Settings
Build, Execution, Deployment -> Compiler -> Annotation Processors ->
Enable annotation processing.
答案 3 :(得分:23)
https://stackoverflow.com/a/38698186/4024146
之后:File > Invalidate Caches / Restart... > Invalidate and Restart
答案 4 :(得分:6)
在.idea文件夹中打开compiler.xml。我有以下内容:
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
我只是将enable更改为true并重新打开项目。
答案 5 :(得分:3)
完全等待这个过程,然后一切都会好的。
答案 6 :(得分:1)
添加到@Jacques Koorts和@mtrakal
如果您无法进入&#34;欢迎使用Android Studio&#34;屏幕。请尝试File -> Close Project
,而不是点击X
图标。然后,您将获得#34;欢迎使用Android Studio&#34;屏幕,你会看到右下角的齿轮。之后请遵循接受的答案,可能还有缓存失效。
答案 7 :(得分:0)
Stuped但为我工作,尝试在我的情况下更改库版本我升级到1.4.1
答案 8 :(得分:0)
如果项目未集成到版本控制中,有时annotate选项将显示为灰色。所以转到VCS-&gt;启用版本控制集成然后你会看到annotate选项,并且可以在编辑器的行号旁边看到作者名称。
答案 9 :(得分:0)
此答案供以后遇到此问题的人
对于Kotlin
添加kapt插件
apply plugin: 'kotlin-kapt'
implementation 'com.google.dagger:dagger:2.21'
kapt 'com.google.dagger:dagger-compiler:2.21'
对于Java
implementation 'com.google.dagger:dagger:2.21'
annotationProcessor 'com.google.dagger:dagger-compiler:2.21'
答案 10 :(得分:0)
就我个人而言,我会强制将其添加到您的 build.gradle(Module:app) 文件中
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath false
}
}
}
}