Gradle 版本规范:使用 mancj/MaterialSearchBar 和 API lvl 27?

Gradle versions specification: using mancj/MaterialSearchBar with API lvl 27?

我正在使用 mancj/MaterialSearchBar 设置一个看起来像 Playstore 的搜索栏。但是,我的 Gradle 构建遇到了一些问题。

错误

build.gradle(模块:应用程序)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.."
        minSdkVersion 27
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        renderscriptTargetApi 27
        renderscriptSupportModeEnabled true
    }
    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.3'
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    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.github.mancj:MaterialSearchBar:0.7.6'
}

已尝试解决方案

我已经尝试用以下行替换此 API 的实现:implementation 'com.github.mancj:MaterialSearchBar:0.7.6:27.1.1' 但没有找到它(意味着它不存在)。

library (version 0.7.6) 正在使用与版本 25.4.0.

相关的 3 个依赖项(AppCompat-v7、RecyclerView-v7 和 CardView-v7)

因为您已经在使用 AppCompat-v7RecyclerView(RecyclerView 包含在 Design 中),所以库将使用版本 27 而不是 25。

你只有一个库可以从 25 转换为 27,CardView-v7

如果要加implementation 'com.android.support:cardview-v7:27.1.1', 这将强制库使用版本 27 而不是 25,因此允许您编译。

您仍然需要注意测试您的应用以查看其行为是否正确,因为该库尚未经过测试以使用 27。

可以像这样替换冲突的版本(并希望它仍然适用于 27.1.1):

implementation "com.android.support:cardview-v7:27.1.1"
implementation ("com.github.mancj:MaterialSearchBar:0.7.6") {
    exclude group: "com.android.support", module: "cardview-v7"
}

使用最新版本

implementation 'com.github.mancj:MaterialSearchBar:0.8.2'

将此代码添加到项目级别 build.gradle 文件

 maven { url "https://jitpack.io" }