FirebaseUIを使用してアプリにfirebaseを追加しようとしています。 ドキュメントにあるように、対応するgms:play-services(11.0.4)をfirebaseUIバージョン(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'
すべてのバージョンが最新であり、すべて同じであることを確認しました。問題が何であるかわかりませんか?
以下を追加することで問題を解決しました。
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'
}
}
}
}
ツールチップはtools:replace = "Android:value" 'をメタデータに追加することを推奨しましたが、これは別のエラーをスローするため、上記のソリューションを使用します
一番下の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
/>
次に、これらの2つの属性を<manifest ... >
タグに追加します。
xmlns:tools="http://schemas.Android.com/tools"
tools:node="replace"
これは、サポートライブラリの2つのバージョンが衝突しているために発生しています。上に、あなたは宣言しました
buildToolsVersion "26.0.1"
依存関係では、バージョンは26.0.0です
compile 'com.Android.support:design:26.0.0'
サポートライブラリのバージョンを26.0.1に変更するだけで、正常に機能します。私は同じことをしましたが、私の場合は完璧に働きました。
この行をアプリレベルのgradleファイルの最後に追加します
apply plugin: 'com.google.gms.google-services'
Appモジュールのbuild.gradleでの実装に同じライブラリの異なるバージョンを使用すると発生します。これは、同じバージョンのライブラリを実装することで解決できます。
それでも問題が解決しない場合は、build.gradle(app module)の最後に次のコードを追加します
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'
}
}
}
}
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'
この行をマニフェストに追加します
<meta-data Android:name="com.google.Android.gms.version" Android:value="@integer/google_play_services_version"
tools:replace="Android:value" />
「application」タグ内に示されているとおりです。
このタイプのエラーは、さまざまなライブラリが追加されたために発生しました。ライブラリを追加する際には、それらがすべて同じバージョンであり、互いに問題なく動作することを確認してください。