Android Studio 无法解析来自 AAR 的符号

Android Studio cannot resolve symbols from AAR

我的问题和Issue with using .AAR file in other project有同样的问题。但我想添加更多细节。因此新问题。

我也知道这样的解决方案 Android Studio cannot resolve symbols from imported AAR module 但答案并不是我要找的。

我可以毫无问题地将我的 AAR 文件添加到我的项目中,方法是将它添加到 libs/ 文件夹中或添加为新的 AAR 模块。当 AAR 作者提供更新的 AAR(因为他们在 public API 中更改了某些内容,即在旧方法之一中添加新参数时,就会出现问题)。

Android Studio 似乎无法获取更改。在旧库中,我调用了这个方法:

library.showText("hello");

作者发布了一个新的 API 并更新了相同的方法,应称为:

library.showText("hello", 5000); // added timeout param

当我按住 CTRL 并单击该方法时,它会将我带到旧的 class,该方法位于 C:\Users\MyUser\.gradle\caches\transforms-1\files-1.1\library .aar\...\old.class。我认为这就是我收到 "cannot resolve symbols" 错误的原因。

我该如何解决这个问题?

取决于导入库的方式:

  • 下载 .aar 并存储到 libs 目录 - 每次有新版本时都需要下载发布并覆盖您当前的 .lib 文件 + 同步 gradle/Rebuild 项目

  • 使用 gradle 文件 url 指向该库 - 同步 gradle(右上栏“Gradle” - 打开并单击刷新图标以重新导入库)

我猜问题出在 Android 工作室,Gradle 不同意。这是对我有用的三个解决方案(经过数小时的测试)。如果一个选项不适合您,请尝试下一个。

选项 1

  1. Gradle -> 刷新所有 Gradle 个项目

选项 2

  1. Gradle -> 刷新所有 Gradle 个项目
  2. 从项目中删除 'build' 个目录
  3. 从 C:\Users\YOUR_USER_NAME\.gradle\caches\transforms-1\files-1.1\* 中删除 .gradle 缓存(仅删除最新的几个文件夹)
  4. 构建 -> 清理项目

选项 3(这将重新启动您的 Android Studio)

  1. 文件 -> 使缓存无效/重新启动
  2. 然后选择无效并重新启动
  3. Gradle -> 刷新所有 Gradle 个项目

我会告诉你我做了什么来纠正这个错误:

  1. 从 build.gradle 文件中删除此依赖项,并同步,此操作将因缺少指定文件而中止;
  2. 现在还原 build.gradle 文件并同步;
  3. 完成,一切正常。