【问题标题】:Android complains of different com.android.support versionsAndroid 抱怨不同的 com.android.support 版本
【发布时间】:2018-10-14 13:39:38
【问题描述】:

我在库模块的 gradle 文件中将 API 28 用于 compileSdkVersiontargetSdkVersion,并将版本和 28.0.0 用于支持库(appcompat 和 support)。我在文件中的任何地方都看不到任何其他版本,例如 27 或 21。但是,Android 抱怨 All com.android.support must use the same version specification. Found versions 28.0.0, 21.0.3。我想知道是什么导致了这个错误?是否有任何其他库在幕后使用我不知道的不同版本?如何解决这个问题?

【问题讨论】:

    标签: android


    【解决方案1】:

    在这种情况下,您应该发布您的应用级 gradle 文件。

    但是,您可以通过在终端中运行./gradlew :app:dependencies 命令来找到问题的根源。该命令将生成传递依赖树,您可以通过这种方式知道哪个依赖将较低版本的库带到您的应用程序中,exlude 它。

    【讨论】:

    • 你的第一个命令返回Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
    • 尝试运行gradle wrapper。似乎 Gradle 包装器配置不正确。
    【解决方案2】:

    也许您正在使用使用旧版本支持版本的依赖项, 为了找到依赖项,您可以运行gradle dependencies 任务。 为了使结果更具可读性和美观,报告插件很有用。要添加此插件,请在您的 build.gradle 文件中添加 apply plugin: 'project-report' 并运行 $ ./gradlew htmlDependencyReport ,然后在此通行证中为 HTML 格式的报告提供资金 build/reports/project/dependencies/index.html

    找到该依赖项后,您可以exclude 如下所示:

    implementation ('your conflict library') {
    exclude "com.android.support"  }
    

    【讨论】:

    • 天哪,生成的报告是一个充满图书馆的巨大噩梦!
    • 是的,您可以使用 project-report 使其美观且易读。您使用它吗?
    猜你喜欢
    • 2016-02-16
    • 2011-02-22
    • 2021-06-20
    • 2019-01-21
    • 1970-01-01
    • 2017-01-02
    • 2016-04-26
    • 1970-01-01
    相关资源
    最近更新 更多