【问题标题】:Android Studio - Removed dependency is not removed from external librariesAndroid Studio - 移除的依赖不会从外部库中移除
【发布时间】:2019-02-04 18:00:23
【问题描述】:

在 Android Studio 中,我在 gradle 文件中实现了一些要在我的应用程序中使用的库,这些库被添加到项目的外部库部分,每个都有自己的版本。

现在,当我从我的 gradle 文件中删除其中一个库的依赖项时,它并没有从外部库部分中删除,它提取的类可以在应用程序中正常导入和使用,这是一个很大的问题标记我。

此外,当更改这些库版本之一(在我的情况下降级)时,更新的版本不会反映在外部库部分中,相反,外部库部分中的版本是应用程序中使用的版本,这迫使我使用我不想使用的版本。

我已经尝试过“构建项目”甚至“无效并重新启动”,但没有任何改变,我在这里错过了什么?!!

【问题讨论】:

  • 我很想知道这个问题是否有真正的答案,我已经遇到过几次了,通常是使用 firebase。我一直在删除依赖项,然后删除外部库文件,然后重新添加所有内容。
  • @Notsileous Martin 的第一个答案没有帮助,但他在另一个模块中寻找该库的建议是正确的,我在另一个模块中找到了它。您所要做的就是从该模块中排除库,一切都会很好,并且要知道它是哪个模块,您可以通过从模块中排除库来简单地进行反复试验,看看哪个模块将库从缓存中排除时会从缓存中消失。

标签: android android-studio gradle


【解决方案1】:

另一个答案的 cmets 中最可能的解释是,被声明为第一级依赖项的库也是另一个库的传递依赖项。

版本也是如此,在第一级依赖声明上更改它时,它仍然通过传递依赖和冲突解决升级到另一个版本。

【讨论】:

  • 完全正确,说到这个,你知道如何强制应用将一级依​​赖库作为最高优先级吗?
  • Gradle 有很多解决方案,看看documentation
【解决方案2】:

.idea/libraries目录中有一个缓存的xml文件,需要删除。

“使缓存无效并重新启动”也会导致刷新。

此外,还有更多的缓存;在用户配置文件中构建目录/目录和 ~/.gradle/caches... 或者可能还有其他一些模块,它仍然被引用。

【讨论】:

  • 我也试过了,但结果相同,删除并重新启动缓存文件后,旧版本再次弹出缓存文件等外部库,尽管在删除缓存的 xml 文件时我发现外部库也被删除了.快把我逼疯了。
  • @MuhammedRefaat 还有更多缓存; build directory/directories 和~/.gradle/caches 在用户配置文件中......或者可能还有其他一些模块,它仍然被引用。
  • 谢谢,我做了一些调查,你是对的,它被另一个库使用,我所要做的就是通过从另一个依赖的库中排除意味着库来编辑 gradle 文件并在库依赖项中使用我喜欢的版本。
猜你喜欢
  • 2015-07-25
  • 2017-03-27
  • 2014-06-05
  • 1970-01-01
  • 2020-08-05
  • 1970-01-01
  • 2013-06-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多