为什么我使用 Kotlin 在 Android studio 中添加三个 Google-Calendar-API 依赖项时遇到了 40 多个错误

问题描述 投票:0回答:1

我在以下各项中遇到多个错误:(我没有创建这些)

     `IncrementalFileMergerOutputs.java
     DelegateIncrementalFileMergerOutput.java
     MergeJavaResourcesDelegate.kt
     IncrementalFileMerger.java
     MergeJavaResWorkAction.kt
     ProfileAwareWorkAction.kt
     StreamMergeAlgorithms.java`

我在

build.gradle.kts(Module :app)
中添加了依赖项。 依赖关系:

     `implementation ("com.google.api-client:google-api-client:2.0.0")
      implementation ("com.google.oauth-client:google-oauth-client-jetty:1.34.1")
      implementation ("com.google.apis:google-api-services-calendar:v3-rev20220715-2.0.0")`

在看到所有错误后,我开始在我的目录中编辑构建脚本

build.gradle.kts(Project: projectname)
这样:

     `buildscript {
        dependencies {
            classpath 'com.google.gms:google-services:4.3.15'
     }`

我希望这可能是问题所在。 是这样的:

    `buildscript{
        repositories{
            google()
        }
    }`

我认为它可以产生影响,但我什至无法让类路径工作,因为它是私有的,我无法访问它。

kotlin google-calendar-api
1个回答
0
投票

如果没有完全了解您的项目及其所有依赖项,您的问题很难回答,因为您没有说明您列出的 7 个文件中发生了哪些错误。

但是您似乎遇到了依赖覆盖问题。这些问题是如何发生的:

假设您的项目已经有一个名为“SomeTools”的依赖项,并且该库依赖于旧版本的 GSON。

现在,当您包含这些新依赖项时,如果这些依赖项包含 GSON 的“传递依赖项”,那么依赖项管理器需要决定应使用哪个版本。如果现在包含不同版本的 GSON,则这可能与例如由以下人员进行的调用不兼容: IncrementalFileMergerOutputs.java 这就是为什么你会出现错误。

使用 Maven 的 

dependency:tree

工具来探索传递依赖关系,您可以看到您列出的依赖关系之一就引入了许多其他库: [INFO] +- com.google.oauth-client:google-oauth-client:jar:1.34.1:compile [INFO] | +- com.google.http-client:google-http-client:jar:1.42.0:compile [INFO] | | +- org.apache.httpcomponents:httpclient:jar:4.5.14:compile [INFO] | | +- org.apache.httpcomponents:httpcore:jar:4.4.16:compile [INFO] | | +- com.google.j2objc:j2objc-annotations:jar:1.3:compile [INFO] | | +- io.opencensus:opencensus-api:jar:0.31.1:compile [INFO] | | | \- io.grpc:grpc-context:jar:1.27.2:compile [INFO] | | \- io.opencensus:opencensus-contrib-http-util:jar:0.31.1:compile [INFO] | +- com.google.http-client:google-http-client-gson:jar:1.42.0:compile [INFO] | | \- com.google.code.gson:gson:jar:2.9.1:compile [INFO] | \- com.google.guava:guava:jar:31.1-android:compile [INFO] | +- com.google.guava:failureaccess:jar:1.0.1:compile [INFO] | +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile [INFO] | +- org.checkerframework:checker-qual:jar:3.12.0:compile [INFO] | \- com.google.errorprone:error_prone_annotations:jar:2.11.0:compile

我注意到您正在使用 Gradle,因此您需要使用 Gradle 的等效工具。在此问题中查找相关信息:
使用 Gradle 查找依赖关系树

这就是我如何发现依赖冲突发生的地方。您可以向 Gradle 提供一些指令来排除某些依赖项,或使用特定版本。

© www.soinside.com 2019 - 2024. All rights reserved.