无法解决有关向后兼容库的问题

时间:2018-04-27 12:27:44

标签: android android-gradle backwards-compatibility

我有Android Studio 3.1.2最新更新。

我遇到了向后兼容性问题,如图所示

Issue Image

以下是我的gradle文件

Gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.companyname.appname"
        minSdkVersion 21
        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.constraint:constraint-layout:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    testCompile 'junit:junit:4.12'
    implementation 'com.android.support:multidex:1.0.1'
    implementation 'com.android.support:cardview-v7:27.1.1'

    implementation 'com.google.android.gms:play-services:9.2.0'
    implementation files('libs/ksoap2-android-assembly-2.4-jar-with-dependencies.jar')
    implementation('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') {
        transitive = true;
    }
    implementation 'com.weiwangcn.betterspinner:library-material:1.1.0'


}

以上是我的gradle文件,我没有使用错误中描述的库,仍然出现错误。

1 个答案:

答案 0 :(得分:2)

它是您的依赖项列表中的另一个库,它导入着名的支持库。因为这些库依赖项会发生冲突,所以必须明确添加它们。因此,您必须将mediarouter-v7:27.1.1添加到您的依赖项中,并且消息将消失。您可能还需要添加其他依赖项。

此解决方案有苦味,因为您必须添加依赖项,而实际上并不需要。您可以尝试找出哪个库实际使用过时的版本23.0.0并要求他们将lib更新为更新版本。

也许是这个lib:

implementation 'com.weiwangcn.betterspinner:library-material:1.1.0'

取决于

compile 'com.android.support:appcompat-v7:23.1.1'

所以,正如他们在网站上所说,你必须排除这些图书馆:

  

如果您的依赖项中有appcompat-v7,请确保将其排除   :

compile ('com.weiwangcn.betterspinner:library:1.1.0') {
exclude group: 'com.android.support', module: 'appcompat-v7' }

<强>更新

在使用Google Wear操作系统时再次遇到此问题后,显示要跟踪的依赖关系树是有帮助的,哪个依赖关系实际上包含冲突的库:

./gradlew app:dependencies

这将打印完整的依赖关系图,您可以在其中看到相应的依赖关系。之后,您可以从lib中排除使用旧引用的那些。