【问题标题】:Android studio - run annotation processor manuallyAndroid studio - 手动运行注释处理器
【发布时间】:2017-05-04 07:36:06
【问题描述】:

这可能吗?我已经更改了我的代码中的一些基本内容,并希望进行干净的构建以查看现在需要调整多少内容。这会在我的 Messages Gradle Build 窗口中产生 1000 条 cannot find symbol class ... 消息。

所以我现在想手动运行注释处理器以摆脱那些消息并只看到相关消息(查看这么多消息很麻烦,我知道所有带注释的类都可以由注释处理器构建而没有问题) .

这有可能吗?如何在 android studio 中手动运行注解处理器?

【问题讨论】:

    标签: android android-studio gradle android-gradle-plugin annotation-processing


    【解决方案1】:

    您永远不必手动运行注释处理器(当然,除非您正在开发一个)。

    确保您在 Android Studio (https://www.jetbrains.com/help/idea/2017.1/configuring-annotation-processing.html)、Build > Clean 项目和 Build > Rebuild 项目中启用了注解处理器。

    如果您已正确设置所有内容,则应该可以。但是,如果您的构建由于注释处理器而失败(例如:Dagger 不满足依赖关系图),那么您将需要找出根本问题。

    【讨论】:

    • 它因为编译错误而失败......在构建时,如果我的代码中某处出现编译错误,android studio 将永远不会运行注释处理器。这就是为什么我想在不编译的情况下运行处理器......我只是想只运行处理器
    • 这是不正确的。所有注释处理器都在编译任何其他代码之前执行。因此,如果注释处理器引用的类中出现编译错误,则需要修复它,而您不会通过手动运行注释处理器来解决它。事实上,它应该返回与构建运行时相同的错误。
    • 我正在为我的数据库使用注释处理器,将所有这些代码移动到一个模块并编译这个模块工作。这样做后,我在主应用程序中看到大约 100 个错误。如果我能够手动运行注释处理器,我将能够看到这 100 个错误而不会出现所有丢失的类错误,并且不会仅仅为了编译模块而将我的数据库代码移动到模块中,因此强制在这些类上运行的注释处理器...
    • 你有没有想过如何手动运行注释处理器?
    【解决方案2】:

    如果您正在使用kotlin 并使用kapt,则应该有一个名为kaptDebugKotlin 的任务,您可以使用gradle CLI 访问,只需在终端./gradlew app:kaptDebugKotlin 中执行此命令即可 如果您有一个多模块项目,请确保将 app 替换为您的模块名称。

    如果您使用的是java,那么只需将app:kaptDebugKotlin 替换为compileDebugJavaWithJavac,这应该会执行您的注释处理器。

    在编译错误的情况下强制构建继续,将--continue添加到终端的命令中。

    编码愉快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 1970-01-01
      相关资源
      最近更新 更多