将Android Studio升级到3.2.1后合并的清单警告

时间:2018-10-20 22:49:19

标签: firebase android-studio android-manifest

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

  

合并错误:警告activity#com.google.firebase.auth.internal.FederatedSignInActivity@android:launch模式在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'

尽管如此,一切都可以编译并正常运行。

7 个答案:

答案 0 :(得分:4)

首先在清单添加项中将以下活动添加到应用程序节点:

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

答案 1 :(得分:1)

我成功地将以下行放入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" />

答案 2 :(得分:0)

问题是由firebase-auth:16.0.5引入的...

保持先前版本的依赖关系是一种可能的解决方法:

dependencies {
    ...

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

虽然一个人可能会忽略该警告,但到目前为止尚未发现副作用。

答案 3 :(得分:0)

如果您使用大写包装,则会出现我重现的问题,请重新检查您的命名包装。 要解决此问题,请将您创建的所有程序包名称都转换为小写。

before

after

答案 4 :(得分:0)

打开命令提示符,然后在命令下方键入

const addTogether = (...args) => {
let result = [];
let max = 0;
args.forEach((arg)=>{
    max = Math.max(max,arg.length)
})
for(let j=0;j<max;j++){
result[j]= 0
for (let i = 0; i < args.length; i++) {
   if(args[i][j])
     result[j]+= args[i][j]
     }
  }
  return result
 }
 console.log(addTogether([1, 2, 3], [4, 5], [6]))

答案 5 :(得分:-1)

我有同样的问题。这不是由于Firebase造成的。

我创建了一个名为register_rest_route('wp/v2', 'users/register', array( 'methods' => 'POST', 'callback' => 'wc_rest_user_reg_ep_handler', )); 的新启动器图标。生成的2个文件my_launchermy_launcher.xml出错。

就我而言,它没有为my_launcher_round.xml标签找到@mipmap/ic_launcher_background。我将其删除,重建工作正常。

答案 6 :(得分:-2)

弄清楚是什么原因造成的!

由于警告,整个<application>...</application>部分被突出显示

enter image description here

我能够通过添加该行来解决此问题

<application

      ..

      tools:ignore="GoogleAppIndexingWarning"

      ..>
      ..

</application>

或者,您可能想从URL添加链接-有关更多信息,请参见enter link description here

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