【问题标题】:Android App Manifest merger failed Facebook and FirebaseAndroid App Manifest 合并失败 Facebook 和 Firebase
【发布时间】:2017-05-30 11:33:30
【问题描述】:

我正在开发一个社交应用程序(Facebook 和 Firebase)。

添加 firebase gradle 路径后,出现此错误:

Error:Execution failed for task ':app:processDebugManifest'.

清单合并失败:来自 AndroidManifest.xml:85:13-72 的属性 activity#com.facebook.FacebookActivity@theme value=(@android:style/Theme.Translucent.NoTitleBar) 也存在于 [com.firebaseui:firebase-ui-auth:0.6.0] AndroidManifest.xml:69:13-58 value=(@style/FirebaseUI.Translucent)。 建议:将 'tools:replace="android:theme"' 添加到 AndroidManifest.xml:81:9-85:75 的元素以覆盖。

build.gradle文件:

compile 'com.firebaseui:firebase-ui:0.6.0'
compile 'com.facebook.android:facebook-android-sdk:4.0.0'

主要文件

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

<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

<application
    android:name=".Init"
    android:allowBackup="true"
    tools:replace="android:theme"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="*****" />
    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="******" />

    <activity android:name=".Activity.SplashScreenActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Activity.ProfileActivity"
        android:label="@string/title_activity_profile" />

    <activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    <activity android:name=".Activity.PasswordActivity" />
    <activity android:name=".Activity.SelectFromListActivity" />
    <activity android:name=".Activity.CompleteFacebookActivity"></activity>
</application>

【问题讨论】:

  • 你能发布你的清单文件吗
  • @NayanSrivastava 它已更新。
  • 您是否尝试在清单中添加 'tools:replace="android:theme"?

标签: android facebook firebase


【解决方案1】:

Nayan Srivastava 和 MhmdAljobairi 的两个较早答案的组合对我有用:

<meta-data
                android:name="com.facebook.sdk.ApplicationId"
                tools:replace="android:value"
                android:value="@string/facebook_app_id"
        />

【讨论】:

    【解决方案2】:

    自从我们在项目中添加 firebase-ui-auth 后,这个错误就出现了,如果没有正确修复,会导致 facebook 活动崩溃!

    要修复它,请更新清单(注意新的“工具”属性):

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              package="YOUR_PACKAGE">
    
        <!-- Facebook API Key -->
        <meta-data
            tools:replace="android:value"
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id" />
    
        <activity
            android:name="com.facebook.FacebookActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait"/>
    

    【讨论】:

      【解决方案3】:

      由于 logcat 响应中已经存在提示,只需将 'tools:replace="android:theme"' 添加到 manifest 中的 application 节点即可。

      【讨论】:

      • 我还是遇到了同样的问题。
      • 你能否更新现在有问题的清单文件,并请包括命名空间
      • 问题已经解决了,我刚刚把'tools:replace="android:theme"'移到了facebook活动标签
      • 这是一个奇怪的 PITA 错误 - 它的根本原因是什么? Firebase 的清单中有相同的 xml 标记?
      猜你喜欢
      • 2016-11-01
      • 1970-01-01
      • 2015-09-12
      • 2017-03-13
      • 1970-01-01
      • 2020-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多