Je suis nouveau studio android et je suis en train d'apprendre firebase et mettre en œuvre un signe de Google pour mon application factice.
Je suis allé de l'avant et suivi la documentation de Google pour inclure certaines lignes dans les fichiers build.gradle
dans le projet / gradle J'ai ajouté classpath 'com.google.gms:google-services:4.3.3'
et app / gradle J'ai vérifié pour apply plugin: 'com.android.application'
etapply plugin: 'com.google.gms.google-services'
car il était déjà là, j'ai ajouté: implementation 'com.google.firebase:firebase-analytics:17.2.2'
Je synced mon projet et quand j'ai essayé d'exécuter l'application que je reçois l'erreur suivante:
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-19:19 to override.
S'il vous plaît dites-moi ce que je fais mal? J'utilise studio Android sur Windows 10
EDIT: voici mon fichier xml manifeste comme suggéré par l'utilisateur
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.MyName.TestApp">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Mon application fichier gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.MyName.TestApp"
minSdkVersion 23
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
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.google.firebase:firebase-analytics:17.2.3'
}
apply plugin: 'com.google.gms.google-services'
Fichier global gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.1'
classpath 'com.google.gms:google-services:4.3.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Si vous souhaitez utiliser la version Analytics 17.2.2 alors vous devez mettre à jour androidx. A partir de la documentation:
Les bibliothèques mises à jour ne fonctionnera pas à moins que vous apportez les modifications suivantes dans votre application:
- Mise à niveau com.android.tools.build:gradle à v3.2.1 ou version ultérieure.
- Mise à niveau compileSdkVersion à 28 ou plus tard.
- Mettez à jour votre application pour utiliser Jetpack (AndroidX); suivez les instructions de la migration vers AndroidX.