【问题标题】:All the libraries must use the same versions所有库必须使用相同的版本
【发布时间】:2018-05-04 21:29:51
【问题描述】:

我的依赖

dependencies {
compile 'me.dm7.barcodescanner:zxing:1.9'
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'

implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

compile 'com.theartofdev.edmodo:android-image-cropper:2.7.+'

}

在编译找到的版本27.1.1,26.1.0 时,我在appcompat 行出现错误,示例包括..vectordrawable 27.1.1 nd supportdesign 26.1.0

我的目标 SDK 是 26。

我尝试将版本切换到 27,但我的 SDK 目标是 26,我收到错误消息。

【问题讨论】:

  • 解决这个问题好运吗?

标签: android android-studio android-gradle-plugin build.gradle


【解决方案1】:

每当您看到此类问题时,请在您的 gradle 文件中使用与您的其他支持库相同的版本显式声明探测库:

implementation "com.android.support:animated-vector-drawable:26.1.0"
implementation "com.android.support:design:26.1.0"
implementation 'com.android.support:support-vector-drawable:26.1.0'

发生这种情况是因为您的某些依赖项使用了不同的版本。

另外,使用实现而不是编译。编译已被弃用:

implementation 'me.dm7.barcodescanner:zxing:1.9'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'

【讨论】:

  • 我添加了线条 get now vector-drawable 27.1.1 , design 26.1.0
  • 我只有 1 条带有 26.1.0 的可绘制线我不知道它是从哪里获得 27.1.1 的
  • 让我看看,1 秒
  • 还有实现 'com.android.support:support-vector-drawable:26.1.0'
【解决方案2】:

您的项目中存在冲突的依赖项。您需要通过在 Linux 终端中运行以下命令来检查项目的依赖关系树:

./gradlew app:dependencies

或者如果您使用的是 Windows:

 gradlew app:dependencies

在您的根项目中。 app 是你的模块名称。

快速检查你的依赖块,你会发现以下库:

compile 'com.theartofdev.edmodo:android-image-cropper:2.7.+'

正在使用支持库版本 27.1.1 作为其依赖项(您可以查看its build.gradle)。

您可以使用以下方法从图像裁剪器中排除该库:

implementation ('com.theartofdev.edmodo:android-image-cropper:2.7.0') {    
    exclude group: 'com.android.support'
    exclude module: 'appcompat-v7'
}

使用旧版本的支持库的副作用是你不能确定你的程序是否能正常工作。这是因为库的所有者可能没有使用旧版本的支持库测试该库。

更好的方法是将您的 BuildToolsVersioncompileSdkVersiontargetSdkVersionsupport libraries 更改为版本 27。类似于以下内容:

android {
  compileSdkVersion 27
  buildToolsVersion '27.0.3'

  defaultConfig {
    applicationId "com.package.name"
    minSdkVersion 15
    targetSdkVersion 27

    ...
  }

  ...
}

dependencies {
  implementation fileTree(dir: 'libs', include: ['*.jar'])

  implementation 'com.android.support:appcompat-v7:27.1.1'
  implementation 'com.android.support:design:27.1.1'

  // your other dependencies
  ...
}

【讨论】:

    猜你喜欢
    • 2017-08-22
    • 2017-07-23
    • 2017-11-12
    相关资源
    最近更新 更多