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-v7
和 RecyclerView
(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" }
我正在使用 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
.
因为您已经在使用 AppCompat-v7
和 RecyclerView
(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" }