【问题标题】:Issue with build after updating Android SDK更新 Android SDK 后的构建问题
【发布时间】:2016-06-09 06:04:51
【问题描述】:

我昨天更新了 SDK,在项目同步后我收到了下一条消息:

Error:Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (23.2.0) and test app (23.1.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details.

我想即使我没有更改我的 Gradle 文件,Android Studio 也会尝试使用最新的依赖项。如何解决?

【问题讨论】:

  • 感谢您的建议。很清楚会发生什么。我不直接使用23.2.0。我正在尝试找出哪些依赖项正在强制获得更新的支持。
  • 我发现了问题。我的传递依赖项之一是将支持依赖项声明为23+
  • 一个好主意是写这个库的作者以避免在依赖项中使用 +。这正是不应该使用它的原因。

标签: android android-studio gradle


【解决方案1】:

将以下行添加到您的 build.gradle 脚本中。

androidTestCompile 'com.android.support:support-annotations:23.2.0'

【讨论】:

  • 为什么?我没有仪器测试
  • Android 工作室只是想确保您测试应用程序和主应用程序,它们都使用相同版本的库构建。是否使用测试应用并不重要。
  • @EugenMartynov 如果您觉得我的回答有帮助,您可以接受。
  • @EugenMartynov 实际上您只发布了一行错误,而不是完整的代码,也没有发布您的依赖文件代码。所以我只是根据您在此处发布的问题回答您的问题。
  • 我在主题上说我没有更改gradle文件。它不是关于我的依赖项的直接信息,但可以为您提供一些见解。我在 SO 上已经四年了,我第一次得到如此激进的 cmets 接受答案,即使答案也不是我的问题的确切解决方案。甚至我也可能不会提供有关问题的完整信息。我们在这里是为了互相帮助寻找答案,而不是为了获得接受答案的分数。感谢您的帮助!
【解决方案2】:

原因是我们使用的依赖。这个库定义了像这样的传递依赖:

<dependency>
      <groupId>com.android.support</groupId>
      <artifactId>appcompat-v7</artifactId>
      <version>23+</version>
      <scope>compile</scope>
</dependency>

所以解决方案是从中排除支持库:

compile(<my dependency>, ext: 'aar') {
        exclude group: 'com.android.support'
        transitive = true
}

图书馆的所有者已经通知了它。

感谢您的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-21
    • 2021-12-15
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    相关资源
    最近更新 更多