Android Studio处理快照依赖项

7

我在使用Android Studio 3.0.1时,遇到了一些使用SNAPSHOT依赖项的问题。我也尝试过Android Studio 3.1,但问题仍然存在。

我是通过以下方式包含依赖项的:

dependencies {
    configurations.all {
        resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
        resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds'
    }
    implementation('com.example:lib:0.0.1-SNAPSHOT') { changing = true }
}

当库的新版本发布后,如果我点击“刷新所有Gradle项目”图标,应用程序可以正常构建。然而,Android Studio没有看到快照中所做的任何更改。
我已经尝试重新启动Android Studio并使其无效缓存,但没有任何区别。
如何让Android Studio知道这些变化?

configurations.all 块是否应该放在 dependencies 块之外? - clownba0t
1
我有同样的问题,而且我将那个块放在外面。 - Fco P.
你是否在离线模式下使用AS?你可以在“首选项->构建、执行、部署->Gradle->全局Gradle设置”中进行检查。离线工作应该取消勾选。 - Blaz
1
请注意,在“configurations.all”中应用的代码仅适用于直接依赖项,如果您正在使用传递依赖项,则应告诉Gradle也考虑这些依赖项。以下是如何实现此目标的示例:https://github.com/gradle/gradle/issues/2317 - ox_
2个回答

4

我有同样的问题。到目前为止,对我有效的方法是通过命令行刷新依赖项:

./gradlew clean --refresh-dependencies

之后,完全退出AS并重新打开。如果我发现其他内容,我会更新我的回答。


1
这个问题很荒谬。一直在使用mavenLocal()快速发布库的更新,而不必使用远程存储库,但是自从使用android.enableBuildCache=true后,在Studio 3.1中就无法工作了。 你找到任何解决方法来避免刷新所有依赖项了吗? - fast3r

2

我认为这不是同一个问题。我正在使用3.2版本的发布通道构建,但我仍然遇到了与OP相同的问题。AS的库/构建缓存似乎根本不尊重gradle的“resolutionStrategy”。 - Matthias

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