gpt4 book ai didi

android - 实现版本的 Build.gradle 问题

转载 作者:太空狗 更新时间:2023-10-29 13:03:45 25 4
gpt4 key购买 nike

我收到此警告:

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 27.1.1, 27.1.0. Examples include com.android.support:animated-vector-drawable:27.1.1 and com.android.support:exifinterface:27.1.

我明白这一点,但为什么即使所有 com.android.support 版本都相同,也会向我显示此警告? (27.1.1)

这是我的文件的内容:

apply plugin: 'com.android.application'

android {
compileSdkVersion 27
defaultConfig {
applicationId "com.app.sin.retrolist"
minSdkVersion 18
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
} }

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:recyclerview-v7:27.1.1'
implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.jakewharton:butterknife:8.8.1'
implementation 'com.android.volley:volley:1.1.1'
implementation 'com.squareup.picasso:picasso:2.71828' }

最佳答案

要查看为什么特定依赖项包含在您的依赖项树中,您可以(假设您的主模块名为 app 并且您在 macOS 上)运行一个简单的:

./gradlew app:dependencies

在控制台输出中,您将看到完整的依赖树以及如何解析库版本。

处理像这样的依赖冲突的正确方法是明确定义一个解决策略:

configurations.all {
resolutionStrategy {
force 'com.android.support:exifinterface:27.1.1'
}
}

这必须放在 app 模块中 build.gradle 文件的根目录中。

覆盖冲突的依赖:

dependencies {
...
implementation 'com.android.support:exifinterface:27.1.1'
}

不太正确,因为您的模块不直接 依赖于此库,因此,如果您的依赖项的 future 版本不再依赖它,它仍将包含在已解决的依赖项列表,即使您不需要它也是如此。

更好的是,您可以定义:

ext {
supportLibVersion = "27.1.1"
}

在你的主 build.gradle 文件中,然后在你需要的地方使用它:

configurations.all {
resolutionStrategy {
force "com.android.support:exifinterface:$rootProject.supportLibVersion"
}
}

dependencies {
...
implementation "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
implementation "com.android.support:recyclerview-v7:$rootProject.supportLibVersion"
implementation "com.android.support:cardview-v7:$rootProject.supportLibVersion"
...
}

关于android - 实现版本的 Build.gradle 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51580721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com