Search code examples
androidfacebookfacebook-android-sdk

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


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.

Solution

  • 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>