【问题标题】:Manifest merger failed with multiple errors when adding firebase messaging service to my AndroidManifest.xml file将 Firebase 消息服务添加到我的 AndroidManifest.xml 文件时,清单合并失败并出现多个错误
【发布时间】:2016-10-18 19:47:54
【问题描述】:

我希望将 Firebase 云消息传递添加到我的应用中。我为此遵循了codelab 教程,它在示例应用程序中正常工作,但是当我尝试将<service> 标记添加到我的应用程序时,会发生清单合并错误。

奇怪的是,它在没有将这些服务添加到我的清单文件的情况下工作!

这是错误:

错误:packageName/app/src/main/AndroidManifest.xml:52:9-58:19 错误: AndroidManifest.xml:52:9-58:19 中的元素 service#packageName.firebase.MyFirebaseInstanceIdService 与 AndroidManifest.xml:44:9-50:19 中声明的元素重复 packageName/app/src/main/AndroidManifest.xml 错误: 验证失败,退出 FAILURE:构建失败并出现异常。

  • 出了什么问题: 任务 ':app:processDebugManifest' 执行失败。 清单合并失败并出现多个错误,请参阅日志

  • 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --debug 选项运行以获得更多日志输出。

这是我的 AndroidManifest.xml 文件的一部分:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.violete.selfienight">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:name="net.violete.selfienight.leafpic.MyApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme.FullScreen">
    <activity
        android:name=".CameraActivity"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/title_camera_activity"
        android:screenOrientation="landscape"
        android:taskAffinity=".CameraActivity"
        android:theme="@style/AppTheme.FullScreen">
        <intent-filter android:label="@string/app_name">
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

    <service
        android:name=".firebase.MyFirebaseInstanceIdService"
        >
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

    <service
        android:name=".firebase.MyFirebaseInstanceIdService"
        >
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>
  ...
  </application>
</manifest>

我的问题是,Firebase 库是否在构建过程中将这些标签添加到我的清单中,或者这里有什么问题?

【问题讨论】:

    标签: android firebase firebase-cloud-messaging


    【解决方案1】:

    您有两次列出的相同服务 (.firebase.MyFirebaseInstanceIdService)。这行不通。要么拥有一个包含两个 &lt;intent-filter&gt; 元素的 &lt;service&gt; 元素,要么拥有两个具有不同类的独立服务。

    【讨论】:

    • 我觉得我的眼睛需要看医生!非常感谢!
    • 为什么即使我没有向 Manifest 添加服务,通知也会显示?是不是很奇怪?
    • @NavidEivazzadeh:对不起,我不明白那个评论。
    • 对不起我的英语不好。在我将这些服务添加到我的 AndroidManifest 文件之前,FCM 也在工作。我问为什么我的服务没有运行时会发生这种情况?
    • @NavidEivazzadeh:我无法回答这个问题,因为我没有使用过 FCM 本身,而且我已经有几年没有使用过 GCM(FCM 的前身)了。
    【解决方案2】:

    我遇到了同样的问题,通过将 minSdkVersion 的值从 15 更改为 16 得到了解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 2020-01-10
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2019-11-28
      相关资源
      最近更新 更多