我正在尝试使用firebaseUI向我的应用添加firebase。 As the documentations says, I have used the corresponding gms:play-services (11.0.4) with the firebaseUI version (2.2.0) 当我同步gradle文件时,收到以下错误:
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.0) from [com.android.support:support-v13:26.0.0] AndroidManifest.xml:28:13-35
is also present at [com.android.support:customtabs:25.4.0] AndroidManifest.xml:25:13-35 value=(25.4.0).
Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:26:9-28:38 to override.
这是我的gradle文件:
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "com.test.test"
minSdkVersion 21
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:26.0.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:cardview-v7:26.0.0'
compile 'com.android.support:support-v13:26.0.0'
compile 'com.android.support:design:26.0.0'
compile 'com.android.support:recyclerview-v7:26.0.0'
//firebase
compile 'com.google.android.gms:play-services-auth:11.0.4'
compile 'com.google.firebase:firebase-core:11.0.4'
compile 'com.google.firebase:firebase-auth:11.0.4'
compile 'com.google.firebase:firebase-database:11.0.4'
compile 'com.google.firebase:firebase-storage:11.0.4'
compile 'com.firebaseui:firebase-ui:2.2.0'
testCompile 'junit:junit:4.12'
}
//firebase
apply plugin: 'com.google.gms.google-services'
我确保所有版本都是最新的,并且它们都是相同的。无法弄清问题是什么?
答案 0 :(得分:46)
我通过添加:
解决了这个问题 configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.0.0'
}
}
}
}
工具提示建议添加工具:replace =&#34; android:value&#34;&#39;对于元数据,但这会引发另一个错误,所以我要使用上面的解决方案
答案 1 :(得分:21)
我在最底层AndroidManifest.xml
标记的<application>
中添加了此内容,解决了这个问题:
<meta-data
tools:node="replace"
android:name="android.support.VERSION"
android:value="26.1.0" // <- The max version you see in the error message. For me it was 26.1.0
/>
然后将这两个属性添加到<manifest ... >
标记:
xmlns:tools="http://schemas.android.com/tools"
tools:node="replace"
答案 2 :(得分:16)
这种情况正在发生,因为两个版本的支持库发生了冲突。最重要的是,你宣布了
buildToolsVersion "26.0.1"
在依赖项中,版本为26.0.0
compile 'com.android.support:design:26.0.0'
只需将支持库版本更改为26.0.1即可正常工作。我做了同样的事情,在我的情况下完美地工作。
答案 3 :(得分:1)
在app level gradle文件的末尾添加此行
apply plugin: 'com.google.gms.google-services'
答案 4 :(得分:0)
我能够通过胡扯来解决
compile 'com.android.support:appcompat-v7:26.0.0'
并手动添加库,表示错误,例如
compile 'com.android.support:cardview-v7:26.0.0'
compile 'com.android.support:animated-vector-drawable:26.0.0'
compile 'com.android.support:customtabs:26.0.0'
答案 5 :(得分:0)
将此行添加到您的清单
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"
tools:replace="android:value" />
完全如“application”标签内所示。
答案 6 :(得分:0)
由于您添加了不同的库,因此出现了此类错误。 添加库时,请确保它们都具有相同的版本,并且彼此之间可以正常工作。
答案 7 :(得分:0)
当您在应用模块的build.gradle中使用同一库的不同版本来实现时,会发生这种情况。您可以通过实现相同版本的库来解决此问题。
如果问题仍然存在,请在build.gradle(应用程序模块)末尾添加以下代码
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '25.3.0'
}
}
}
}