web-dev-qa-db-fra.com

Avertissement de manifeste fusionné après la mise à niveau d'Android Studio vers 3.2.1

Après la mise à niveau vers Android Studio 3.2.1, lors de la modification du fichier AndroidManifest.xml, ma section <application> du fichier est surlignée en jaune (probablement à cause du message d'avertissement ci-dessous) . Je vois également un nouvel onglet intitulé Merged Manifest qui contient l'avertissement:

Erreurs de fusion: Avertissement activity#com.google.firebase.auth.internal.FederatedSignInActivity@Android: le mode de lancement a été marqué sur AndroidManifest.xml: 24 pour remplacer d'autres déclarations mais aucune autre déclaration présente le manifeste principal de l'application (ce fichier), ligne 23

Des questions: 

  1. Ce nouvel onglet est-il nouveau dans AS 3.2.1? Ou apparaît-il depuis qu'AS 3.2.1 trouve un nouvel avertissement que la version précédente ne l'a pas?

  2. Quel est l'avertissement? Dois-je ajouter une activité dans le fichier AndroidManifest.xml pour Firebase de mon application pour une raison quelconque?

  3. Comment je le répare?

(Remarque: il y avait probablement une mise à jour de Firebase à peu près au même moment.)

Firebase est à jour à l'heure actuelle.

implementation 'com.google.firebase:firebase-auth:16.0.5'
implementation 'com.google.firebase:firebase-core:16.0.4'
implementation 'com.google.firebase:firebase-crash:16.2.1'

Tout compile et fonctionne bien malgré cela.

11
Venu G.

Ajoutez d’abord l’activité suivante au nœud d’application dans les ajouts au manifeste:

<activity
    Android:name="com.google.firebase.auth.internal.FederatedSignInActivity"
    Android:excludeFromRecents="true"
    Android:exported="true"
    Android:launchMode="singleInstance"
    Android:permission="com.google.firebase.auth.api.gms.permission.LAUNCH_FEDERATED_SIGN_IN"
    Android:theme="@Android:style/Theme.Translucent.NoTitleBar"
    tools:replace="Android:launchMode" />

Puis ajoutez ce qui suit au Manifest.xml:

<service Android:name="com.google.firebase.components.ComponentDiscoveryService" />
<meta-data
    Android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseAuthRegistrar"
    Android:value="com.google.firebase.components.ComponentRegistrar" />
<meta-data
    Android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar"
    Android:value="com.google.firebase.components.ComponentRegistrar" />
<meta-data
    Android:name="com.google.firebase.components:com.google.firebase.iid.Registrar"
    Android:value="com.google.firebase.components.ComponentRegistrar" />

3

le problème a été introduit avec firebase-auth:16.0.5...

conserver cette dépendance à la version précédente est une solution de contournement possible:

dependencies {
    ...

    //noinspection GradleDependency
    api "com.google.firebase:firebase-auth:16.0.4"
}

bien que l'on puisse éventuellement ignorer cet avertissement, aucun effet secondaire n'a été signalé jusqu'à présent.

0
Martin Zeitler