2017-08-07 78 views
9

我正在嘗試將firebase添加到使用firebaseUI的應用程序中。 As the documentations says, I have used the corresponding gms:play-services (11.0.4) with the firebaseUI version (2.2.0) 當我在同步的gradle文件,我收到以下錯誤:Android清單合併失敗,gms播放服務/ firebase

Error:Execution failed for task ':app:processDebugManifest'. 
> Manifest merger failed : Attribute meta-data#[email protected] 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

是否添加'compile'c​​om.android.support:customtabs:26.0.0'解決了這個問題? –

+1

不,它不能解決問題。但https://stackoverflow.com/a/45559003/5806017沒有 –

回答

26

我解決了這個問題,通過增加:

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' 
      } 
     } 
    } 
} 

from here.

的提示建議添加工具:更換=」 android:value「'元數據,但這會拋出另一個錯誤,所以即時通過以上解決方案

+0

這節省了工作時間! – Brett

+0

記得用你的錯誤日誌 –

+0

的註釋替換「multidex」,但是在哪裏添加這個 – Pranita

0

在應用級gradle這個文件的最後添加這一行

apply plugin: 'com.google.gms.google-services' 
+0

我忘了複製最後一行,它已經在那裏(更新的問題) – fogx

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' 
8

,它的發生是因爲支持庫兩個版本衝突解決。在頂部,你已經宣佈

buildToolsVersion "26.0.1" 

和依存關係,版本爲26.0.0

compile 'com.android.support:design:26.0.0' 

只要改變支持庫版本26.0.1,它會正常工作。我也做了同樣的事情,在我的情況下完美無瑕地工作。

+0

最適合我的方式!謝謝! – Pierry

+0

正確答案,謝謝! –

0

此行添加到您的清單

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" 
     tools:replace="android:value" /> 

完全一樣的「應用程序」標籤內顯示。

+0

沒有爲我工作 – Pranita

+0

嗨@Pranita不幸的是,這些類型的錯誤沒有「一刀切」的修復方法。這就是爲什麼他們有很多答案要嘗試。嘗試一些其他的答案,希望你會爲你的情況找到合適的答案。 – Sam