gpt4 book ai didi

android - 使用 kapt Android Studio 进行注解处理

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:59 24 4
gpt4 key购买 nike

我正在尝试使用 kapt 来使用我的注释处理器。但是我遇到了一些问题。

注解处理器jar是这样连接的:

    kapt files('libs/processor.jar')
provided files('libs/processor.jar')

1) 我正在使用 JavaPoet用于代码生成。并以这种方式保存我的类(class)

    JavaFile javaFile = JavaFile.builder(PACKAGE, typeSpec).build();
javaFile.writeTo(processingEnv.getFiler());

但它总是将其保存到 build\generated\source\kapt\release,并且永远不会保存到 debug 文件夹,无论构建变体如何。

enter image description here

2) 第二个问题是生成的文件有时不会刷新,直到我按下 Build->Rebuild

最佳答案

kotlin-kapt 插件会根据构建的库/应用变体自动选择正确的输出目录。使用单个 com.android.application 模块构建项目时,Android Studio 将使用在“Build Variants”菜单中选择的应用程序变体。

Build variants window

库模块不是这样,如果没有另外配置,库模块将发布 release 构建变体 – 即使您在“Build Variants”菜单中为这些模块选择“debug”也是如此。

要为库模块启动并运行 kapt,您有三个选择:

  1. 在“Build Variants”窗​​口中,为包含注释代码的库模块选择“release”。这将告诉 Android Studio 在 generated/sources/kapt/release/ 中获取 kapt 输出。

  2. 在您的库模块 build.gradle 中,将 defaultPublishConfig 设置为 debug(并将选定的变体也保持在调试状态)。这将告诉 Android Gradle 插件编译 debug 库变体而不是默认的 release 库变体。

    android {
    defaultPublishConfig "debug"
    }
  3. 您还可以选择同时发布 debugrelease 构建变体,方法是将 publishNonDefaults 设置为 。在您的主应用程序模块中,您可以两次引用库模块,用于 debugCompilereleaseCompile 配置。但是,请注意,这将始终构建两种类型,即使您在构建时可能只需要调试源,编译时间实际上会加倍。

关于android - 使用 kapt Android Studio 进行注解处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40482040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com