Android Studio无法解析AAR文件中的符号。

3
我的问题和在其他项目中使用.AAR文件的问题相同。但我想添加更多细节,因此提出新问题。
我也知道解决方案,例如Android Studio无法解析从导入的AAR模块中导入的符号,但这些答案并不完全是我要找的。
我可以将AAR文件添加到我的项目中,无论是将其添加到libs/文件夹中还是添加为新的AAR模块,都没有问题。问题发生在AAR作者给出更新的AAR时(因为他们在其公共API中更改了一些内容,即在旧方法之一中添加了新参数)。
Android Studio似乎无法识别变化。在旧库中,我有这个方法调用:
library.showText("hello");

作者发布了一个新的API,更新了相同的方法,应该这样调用:

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

当我按下CTRL+单击方法时,它会带我去旧类中的方法,该方法位于C:\ Users \ MyUser \ .gradle \ caches \ transforms-1 \ files-1.1 \ library.aar \ ... \ old.class。 我认为这就是我遇到“无法解析符号”错误的问题所在。

我该如何修复这个问题?


3个回答

5

我会告诉你我是如何纠正这个错误的:

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

4
我猜问题出在Android Studio和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项目

没有gradle菜单。我必须进入视图->工具窗口->gradle才能获取gradle工具栏,其中包含“刷新”图标。 - nettie
1
对我没用 :-( 话虽如此,在Linux中我找不到Accounts.gradle... - user1300214
@user1506104 仍然不起作用。清除了所有缓存,重新导入了 .aar 文件,但仍然找不到它。但是,我创建了一个新项目,导入了 .aar 文件,现在它可以工作了! - user1300214
1
太好了!如果过一段时间后,你能找出根本原因,我们可以回到这个帖子并更新答案。干杯! - user1506104

1

取决于导入库的方式:

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

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


我正在尝试第一种选项。在libs目录中覆盖了我的旧aar文件,但仍然出现未解决的错误。 - user1506104
在这种情况下,您应该使整个Android Studio的缓存失效。 - jantursky
我刚刚执行了“刷新Gradle项目”,但并没有起作用。 - user1506104
你如何使整个 AS 的缓存失效? - user1506104
希望这能有所帮助:小帮助 - jantursky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接