【问题标题】:All the AndroidX versions different from the compile所有与编译不同的AndroidX版本
【发布时间】:2019-02-25 18:46:53
【问题描述】:

我已将我的项目迁移到 AndroidX,因为我遇到了一些错误,但现在我收到一个错误循环,表明 androidX 类的版本与编译时不同:

Android dependency 'androidx.fragment:fragment' has different version for the compile (1.0.0-rc01) and runtime (1.1.0-alpha04) classpath. You should manually set the same version via DependencyResolution 

而且它总是一个不同的类,我已经尝试过实现这段代码,但是每次我添加一行时,它都会给我其他与编译不同的类:

configurations.all {
    resolutionStrategy {
        force 'androidx.fragment:fragment:v4:1.1.0-alpha04'
    }
}

【问题讨论】:

  • 我刚刚在我的项目中遇到了同样的问题。通过./gradlew app:dependencies检查依赖图来解决,看看哪些依赖对不同版本有相同的依赖。就我而言,它是 Google 服务和 Room。

标签: flutter


【解决方案1】:

我也遇到过类似的问题,只是在 app/build.gradle 里面解决了这个问题

configurations.all {
    resolutionStrategy {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'androidx.core') {
                details.useVersion "1.0.1"
            }
            if (details.requested.group == 'androidx.lifecycle') {
                details.useVersion "2.0.0"
            }
            if (details.requested.group == 'androidx.versionedparcelable') {
                details.useVersion "1.0.0"
            }
            if (details.requested.group == 'androidx.fragment') {
                details.useVersion "1.0.0"
            }
            if (details.requested.group == 'androidx.appcompat') {
                details.useVersion "1.0.1"
            }
        }
    }
}

【讨论】:

  • 如果有人在将上述配置添加到 build.gradle 文件时遇到问题,这是一个要点gist.github.com/valekar/3e96d939af00c569fa1eec58b8082289
  • 谢谢。它对我有用。我还在gradle.properties 文件中添加了android.useAndroidX=true android.enableJetifier=true android.debug.obsoleteApi=true
  • 非常好,给我最好的答案,谢谢!
【解决方案2】:

如果问题仍然存在,您可能需要升级 android/build.grandle 中的 gradle 版本

变化:

dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'
}

收件人:

dependencies {
    classpath 'com.android.tools.build:gradle:3.3.1'//latest version
}

您还应该更新您的 Kotlin 版本。

【讨论】:

    【解决方案3】:

    我已经解决了我在 gradle.properties 中将我的项目迁移到 androidX 的错误,并通过 Refactor => 迁移到 AndroidX,并将此代码添加到我的 app/build.gradle:

    configurations {
        all*.exclude group: 'com.google.guava', module: 'listenablefuture'
    }
    

    【讨论】:

      【解决方案4】:

      我粘贴了这个.../android/build.gradle(不是.../android/app/build.grade),这解决了问题:

      subprojects {
          project.configurations.all {
          resolutionStrategy.eachDependency { details ->
                  if (details.requested.group == 'androidx.core' &&
                 !details.requested.name.contains('androidx')) {
              details.useVersion "1.0.1"
                  }
          }
          }    
      }
      

      【讨论】:

        【解决方案5】:

        将我的 com.android.tools.build:gradle 更改为版本 3.3.1 解决了我的问题

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-11
          • 1970-01-01
          • 1970-01-01
          • 2021-07-10
          • 2016-11-18
          相关资源
          最近更新 更多