使用kapt Android Studio进行注释处理
我正在尝试使用kapt来使用我的注释处理器。 但是我遇到了一些问题。
注释处理器jar这样连接:
kapt files('libs/processor.jar') provided files('libs/processor.jar')
1)我正在使用JavaPoet进行代码生成。 并以这种方式拯救我的班级
JavaFile javaFile = JavaFile.builder(PACKAGE, typeSpec).build(); javaFile.writeTo(processingEnv.getFiler());
但是它总是保存它以生成\ generated \ source \ kapt \ release,并且永远不会调试文件夹而不管构建变体。
2)第二个问题是,生成的文件有时不刷新,直到我按生成 – >重建
kotlin-kapt
插件将根据构建的库/应用程序变体自动选择正确的输出目录。 使用单个com.android.application
模块构建项目时,Android Studio将使用在“构建变体”菜单中选择的应用程序变体。
对于库模块,这是不正确的,如果没有其他配置,将会发布release
版本变体 – 即使在“构建变体”菜单中为这些模块选择“调试”时也是如此。
要启动并运行库模块,您有三个选项:
-
在“Build Variants”窗口中,为包含注释代码的库模块选择“release”。 这将告诉Android Studio在
generated/sources/kapt/release/
kapt
输出。 -
在你的库模块
build.gradle
设置defaultPublishConfig
来debug
(并保持选中的变体也在调试)。 这将告诉Android Gradle插件编译debug
库变体,而不是默认的release
。android { defaultPublishConfig "debug" }
-
通过将
publishNonDefaults
设置为true
,您也可以选择同时发布debug
release
和release
版本变体。 在您的主应用程序模块中,您可以再次引用库模块两次,以进行debugCompile
和releaseCompile
配置。 但是,请注意,即使您在构建时只需要调试源,也会始终构建这两种类型,几乎是编译时间的两倍。
- Kotlin中的OnclickListener方法之间的区别
- Kotlin – 如何做onCompleteListener从Firestore获取数据?
- 如何使用kotlin在RecyclerView.ViewHolder中绑定视图
- 将RxJava代码正确转换为Kotlin
- Kotlin Fuel REST客户端代理错误
- 为kapt禁用增量构建
- java.lang.NoClassDefFoundError:com.example.api.retrofit.AuthenticationInterceptor $ intercept $ 1
- Kotlinx不能解决符号“合成”
- getActionView已被弃用?