Предупреждение об объединенном манифесте после обновления Android Studio до 3.2.1

После обновления до Android Studio 3.2.1 при редактировании файла AndroidManifest.xml я вижу, что мой раздел <application> файла выделен желтым цветом (предположительно, из-за предупреждения ниже). Я также вижу новую вкладку под названием Merged Manifest, которая содержит предупреждение:

Merging Errors: Warning activity#com.google.firebase.auth.internal.FederatedSignInActivity@android:launch Mode was tagged at AndroidManifest.xml:24 to replace other declarations but no other declaration present app main manifest (this file), line 23

Вопросов:

  1. Эта новая вкладка - что-то новое в AS 3.2.1? Или это появляется, потому что AS 3.2.1 обнаруживает новое предупреждение, которого не было в предыдущей версии?

  2. О чем предупреждение? Нужно ли мне по какой-то причине добавлять действие в AndroidManifest.xml моего приложения для Firebase?

  3. Как мне это исправить?

(Примечание: вероятно, примерно в то же время было обновление Firebase.)

В настоящее время Firebase обновлена.

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'

Несмотря на это, все компилируется и работает нормально.

Вы нашли какое-либо решение

Vinit Poojary 29.10.2018 10:40

Нет. Вы тоже испытываете это?

Venu G. 29.10.2018 18:04

да, получаю такое же предупреждение

Vinit Poojary 30.10.2018 06:00

Я отправил отчет об ошибке в Firebase (я подозреваю, что проблема заключается в этом, но вполне возможно, что это AS 3.2.1). Если я получу ответ с чем-нибудь полезным, я обновлю это.

Venu G. 30.10.2018 23:04

Я получил ответ от службы поддержки Firebase, но они не смогли его воспроизвести. Как и следовало ожидать, они хотели бы получить MCVE (stackoverflow.com/help/mcve), но сейчас у меня нет времени на его создание. @Vinit, если вы можете это сделать, не стесняйтесь отправить им один. Номер дела [5-4824000024047] для справки.

Venu G. 31.10.2018 15:43

У меня такая же проблема. Интересно, будет ли наличие другого манифеста в исходном наборе отладки требованием для воспроизведения проблемы?

Alexander Skvortsov 14.11.2018 14:57
Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
21
6
17 442
7

Ответы 7

Выяснили, что было причиной этого!

Весь раздел <application>...</application> был выделен из-за предупреждения

Мне удалось решить проблему, добавив строку

<application

      ..

      tools:ignore = "GoogleAppIndexingWarning"

      ..>
      ..

</application>

В качестве альтернативы можно добавить ссылку из URL-адреса - для получения дополнительной информации см. введите описание ссылки здесь

https://stackoverflow.com/users/8278273/vinit-poojary, надеюсь, это вам поможет.

это неправильное решение, просто отключите предупреждение об индексировании Google

ggDeGreat 09.11.2018 08:32

Не всем нужно делать ссылку, так что это решение для этих людей. Кроме того, для тех, кто хочет сделать ссылку, я предоставил ссылку в своем ответе выше о том, как это сделать (введите здесь описание ссылки - url: developer.android.com/studio/write/app-link-indexing).

Venu G. 09.11.2018 16:37

В конце концов, я сделал индексацию ссылок приложения (см. Ссылку выше), потому что я все равно хотел, чтобы это было для индексации Google.

Venu G. 14.11.2018 18:32

Сначала добавьте следующее действие к узлу приложения в дополнениях к манифесту:

<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" />

Затем добавьте в 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" />

что вы имеете в виду под «узлом приложения в дополнениях манифеста»? Спасибо

Francesco 17.07.2019 22:52

<манифест ...> <приложение ...> <activity android: name = "com.example.myapp.MainActivity" ...> </activity> </application> </manifest>

kasun sampath adhikari 19.07.2019 08:17

Как и где вы нашли это решение?

Kruupös 13.02.2020 14:29

Я видел первую часть в другом месте. Зачем вам вторая часть? stackoverflow.com/questions/54577588/…

SeanMC 29.02.2020 22:51

проблема возникла с firebase-auth:16.0.5 ...

Сохранение этой зависимости в предыдущей версии - возможное решение:

dependencies {
    ...

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

можно игнорировать это предупреждение, пока не заметил никаких побочных эффектов.

Я была такая же проблема. Это было не из-за Firebase.

Я создал новый значок запуска, который назвал my_launcher. В 2 сгенерированных файлах my_launcher.xml и my_launcher_round.xml были ошибки.

В моем случае он не нашел @mipmap/ic_launcher_background для тега background. Я удалил его, и восстановление заработало.

Я воспроизвожу проблему, возникшую, если у вас есть пакет с верхним регистром, пожалуйста, еще раз проверьте свой пакет имен. чтобы решить эту проблему, сделайте все имена пакетов, которые вы создали, в нижнем регистре.

before

after

Я заставил его работать, поместив следующую строку в AndroidManifest.xml

<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:tools = "http://schemas.android.com/tools" //add this line
    ...>     

и только следующий самозакрывающийся тег активности.

<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" />

откройте командную строку, а затем введите команду ниже

cd android && gradlew clean

Другие вопросы по теме