尝试使用注释时未解析的参考

问题描述 投票:0回答:1

我在 Android 项目中遇到一个问题,我试图在模块 C 的代码中使用模块 B 中定义的注释。但是,我在 Android Studio 中收到“未解析的引用”错误。我尝试了各种配置,但无法解决这个问题。这是我的项目结构以及到目前为止我所做的事情:

项目结构

模块B:注释处理器模块,包含注释和注释处理器。 模块 A:Android 应用程序模块,其中包含模块 B 作为注释处理的依赖项。 模块 C:Android 应用程序模块,包含模块 A,旨在使用模块 B 中的注释。

我尝试过的事情

  1. 使用适当的注释处理器配置将模块 B 添加为模块 A 中的依赖项。
  2. 将模块 A 作为依赖项包含在模块 C 中。
  3. 确保正确的 Gradle 同步、依赖项和导入语句。
  4. 在构建过程中检查 Gradle 控制台是否有任何错误。

当前问题:

尽管遵循概述的步骤并确认设置,我仍然无法在模块 C 的代码中导入和使用模块 B 的注释。模块 C 中 MyAnnotation 的导入语句显示“未解析的引用”错误。

任何有关我为何遇到此问题以及如何解决此问题的见解将不胜感激。

如果我需要提供任何其他详细信息,请告诉我。预先感谢您的帮助!

java android annotations annotation-processing
1个回答
0
投票

如果您有依赖项,例如 C 依赖 A 依赖 B,则使用

implementation()
添加依赖项将不起作用。为了获得模块C中的瞬态依赖,可以在指定依赖B时在A的gradle文件中设置
api
,然后模块B的类和方法将在模块C中可用。

模块A的Gradle文件

api(project(":moduleB")) // moduleB's source will be able with moduleA

模块C的Gradle文件

imeplementation(prject(":moduleA")) // source of both moduleA and moduleB will be available for module C

但是,指定这一点的最佳方法是在模块 C 中添加两个依赖项。

imeplementation(prject(":moduleA"))
imeplementation(prject(":moduleB"))
© www.soinside.com 2019 - 2024. All rights reserved.