How to solve Facebook tools:replace="android:theme"?

AndroidFacebookFacebook Android-Sdk

Android Problem Overview


I have

compile 'com.facebook.android:facebook-android-sdk:4.16.0'

My manifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
...
    <application
            android:name=".MyApplication"
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AutoTheme"
            tools:replace="android:theme">

How to solve compile error:

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute activity#com.facebook.FacebookActivity@theme value=(@android:style/Theme.Translucent.NoTitleBar) from AndroidManifest.xml:69:13-72
	is also present at [com.facebook.android:facebook-android-sdk:4.16.0] AndroidManifest.xml:32:13-63 value=(@style/com_facebook_activity_theme).
	Suggestion: add 'tools:replace="android:theme"' to <activity> element at AndroidManifest.xml:66:9-70:47 to override.

Android Solutions


Solution 1 - Android

  1. Add xmlns:tools="http://schemas.android.com/tools" to <manifest> element at AndroidManifest

  2. Add tools:replace="android:theme" to (facebook activity) <activity>

Here is my manifest file

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.company.product" xmlns:tools="http://schemas.android.com/tools">

    ...
    
    <application
      android:allowBackup="true"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:theme="@style/AppTheme"
      android:name="MyApplication">
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
        <intent-filter>
            ...
        </intent-filter>
      </activity>

      <!--FacebookActivity-->
      <activity
        tools:replace="android:theme"
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"/>

        ...
        
      </application>

</manifest>

Solution 2 - Android

Try this.

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

Replace to

  <activity
            android:name="com.facebook.FacebookActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name"
            android:theme="@style/com_facebook_activity_theme" />

Solution 3 - Android

In your manifest, remove

android:theme="@android:style/Theme.Translucent.NoTitleBar"
       

in the FacebookActivity

Edit: Do you use firebase as well? If so, have a look here https://stackoverflow.com/questions/38101517/android-manifest-merger-with-facebook-and-firebase-libraries

Solution 4 - Android

You Just have to use the this in your Manifest for the FacebookActivity

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

Solution 5 - Android

Remove this line @android:style/Theme.Translucent.NoTitleBar

This will solve your problem

(This way you will avoid manifest propery conflict)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNickUnuchekView Question on Stackoverflow
Solution 1 - AndroidPir Shukarullah ShahView Answer on Stackoverflow
Solution 2 - AndroidJignesh GoyaniView Answer on Stackoverflow
Solution 3 - AndroidAl WldView Answer on Stackoverflow
Solution 4 - AndroidViking93View Answer on Stackoverflow
Solution 5 - AndroidManoj BeheraView Answer on Stackoverflow