【问题标题】:Merged Manifest Warning after upgrading Android Studio to 3.2.1将 Android Studio 升级到 3.2.1 后合并清单警告
【发布时间】:2019-03-25 10:18:36
【问题描述】:

升级到Android Studio 3.2.1 后,在编辑AndroidManifest.xml 文件时,我看到文件的<application> 部分以黄色突出显示(可能是由于下面的警告)。 我还看到一个名为 Merged Manifest 的新标签,其中包含警告:

合并错误:警告 activity#com.google.firebase.auth.internal.FederatedSignInActivity@android:launch Mode 被标记在 AndroidManifest.xml:24 以替换其他声明,但没有其他声明存在应用程序主清单(此文件),第 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'

尽管如此,一切都编译并运行良好。

【问题讨论】:

  • 您找到解决方案了吗
  • 没有。你是否也遇到过这种情况?
  • 是的得到同样的警告
  • 我已经向 Firebase 提交了一份错误报告(我怀疑这是问题所在,但很可能是 AS 3.2.1)。如果我收到任何有用的回复,我会更新。
  • 我收到了 Firebase 支持的回复,但他们无法重现。正如所料,他们希望获得一个 MCVE (stackoverflow.com/help/mcve),但现在我没有时间创建一个。 @Vinit,如果你能做到这一点,请随时给他们发一份。案例编号为[5-4824000024047]供您参考。

标签: firebase android-studio android-manifest


【解决方案1】:

首先在manifest添加的应用节点中添加如下activity:

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

【讨论】:

  • “清单添加中的应用程序节点”是什么意思?谢谢
  • 您是如何以及在何处找到此解决方案的?
  • 我在别处看过第一部分。为什么需要第二部分? stackoverflow.com/questions/54577588/…
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    我遇到了同样的问题。这不是因为 Firebase。

    我创建了一个名为my_launcher 的新启动器图标。生成的2个文件my_launcher.xmlmy_launcher_round.xml有错误。

    就我而言,它没有找到@mipmap/ic_launcher_backgroundbackground 标签。我删除了它,重建工作正常。

    【讨论】:

      【解决方案4】:

      如果您有大写的包,我会重现问题,请重新检查您的命名包。 为解决此问题,请将您创建的所有包名称设为小写。

      【讨论】:

        【解决方案5】:

        这个问题是通过firebase-auth:16.0.5...引入的。

        在以前的版本中保留该依赖项是一种可能的解决方法:

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

        人们可能会忽略该警告,到目前为止没有发现任何副作用。

        【讨论】:

          【解决方案6】:

          打开命令提示符,然后输入以下命令

          cd android && gradlew clean
          

          【讨论】:

            【解决方案7】:

            找出是什么原因造成的!

            由于警告,整个 &lt;application&gt;...&lt;/application&gt; 部分被突出显示

            我可以通过添加该行来解决问题

            <application
            
                  ..
            
                  tools:ignore="GoogleAppIndexingWarning"
            
                  ..>
                  ..
            
            </application>
            

            或者,您可能希望添加来自 URL 的链接 - 有关详细信息,请参阅 enter link description here

            https://stackoverflow.com/users/8278273/vinit-poojary,希望对你有帮助。

            【讨论】:

            • 这不是一个合适的解决方案,你只是禁用谷歌索引警告
            • 不是每个人都需要做链接,所以它是那些人的解决方案。另外,对于那些想要进行链接的人,我在上面的答案中提供了如何做到这一点的链接(在此处输入链接描述 - url:developer.android.com/studio/write/app-link-indexing)。
            • 最终我确实做了应用链接索引(见上面的链接),因为无论如何我都希望谷歌索引。
            猜你喜欢
            • 1970-01-01
            • 2019-05-04
            • 2019-03-18
            • 2018-04-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-06-09
            相关资源
            最近更新 更多