使用kapt Android Studio进行注释处理
我正在尝试使用kapt来使用注释处理器。但是我遇到了一些问题 注释处理器jar的连接方式如下:使用kapt Android Studio进行注释处理,android,android-studio,kotlin,java-annotations,kapt,Android,Android Studio,Kotlin,Java Annotations,Kapt,我正在尝试使用kapt来使用注释处理器。但是我遇到了一些问题 注释处理器jar的连接方式如下: kapt files('libs/processor.jar') provided files('libs/processor.jar') 1) 我正在使用它来生成代码。以这种方式拯救我的班级 JavaFile javaFile = JavaFile.builder(PACKAGE, typeSpec).build(); javaFile.writeTo(proces
kapt files('libs/processor.jar')
provided files('libs/processor.jar')
1) 我正在使用它来生成代码。以这种方式拯救我的班级
JavaFile javaFile = JavaFile.builder(PACKAGE, typeSpec).build();
javaFile.writeTo(processingEnv.getFiler());
但它总是将其保存到build\generated\source\kapt\release,并且无论构建变量如何,都不会保存到调试文件夹
2) 第二个问题是生成的文件有时不会刷新,直到我按下Build->Rebuild时,
kotlin kapt
插件才会根据生成的库/应用程序变量自动选择正确的输出目录。当使用单个com.android.application
模块构建项目时,android Studio将使用在“构建变体”菜单中选择的应用变体
对于库模块而言,情况并非如此,如果未进行其他配置,库模块将发布版本
构建变体–即使您在“构建变体”菜单中为这些模块选择了“调试”
要启动并运行库模块的kapt
,您有三个选项:
generated/sources/kapt/release/
中的kapt
输出build.gradle
中,将defaultPublishConfig
设置为debug
(并将所选变量保持在debug状态)。这将告诉Android Gradle插件编译debug
库变量,而不是默认的版本
android {
defaultPublishConfig "debug"
}
publishNonDefaults
设置为true
,您还可以选择同时发布debug
和release
构建变量。在主应用程序模块中,您可以引用库模块两次,用于debugCompile
和releaseCompile
配置。但是,请注意,这将始终生成这两种类型,即使您可能只需要在生成时使用调试源代码,实际上编译时间增加了一倍你找到解决办法了吗?遇到同样的问题。@david.schreiber文件夹的问题已通过仅在应用程序模块中使用处理器“解决”。文件更新的问题仍然存在。您是否正在使用kotlin 1.0.6,也许他们在kapt中修复了这些问题?我也有库模块的问题,但在分析gradle输出后,我注意到只构建了发布源。这样做的原因是,默认情况下,库模块将只发布发布版本工件:我添加了对这个问题的回答。