如何解决Facebook tools:replace="android:theme"?

问题描述 投票:0回答:6
android facebook facebook-android-sdk
6个回答
105
投票

1) 将

xmlns:tools="http://schemas.android.com/tools"
添加到AndroidManifest
中的
<manifest>

元素

2)添加

tools:replace="android:theme"
到(facebook活动)
<activity>

这是我的清单文件

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

7
投票

试试这个。

 <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="com.facebook.FacebookActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name"
            android:theme="@style/com_facebook_activity_theme" />

4
投票

在您的清单中,删除

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

在Facebook活动中

编辑: 您也使用 firebase 吗?如果是这样,请在此处查看Android 清单与 facebook 和 firebase 库的合并


3
投票

您只需在 FacebookActivity 的清单中使用 this

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

1
投票

删除此行

@android:style/Theme.Translucent.NoTitleBar

这将解决您的问题

(这样你就可以避免明显的属性冲突)


0
投票

在我的例子中,我更改了属性

android:theme="${appTheme}"
manifestPlaceholders["appTheme"] = "@style/Theme2"
build.gradle
中)并得到一个编译错误:

任务 ':app:processGoogleDebugManifest' 执行失败。 清单合并失败:来自 AndroidManifest.xml:23:9-42 的属性 application@theme value=(@style/Theme) 也是 出现在 AndroidManifest.xml:21:9-36 value=(@style/Theme2).
建议:添加 'tools:replace="android:theme"' 到 AndroidManifest.xml:15:5-92:19 中的元素要覆盖。

我有 3 个

AndroidManifest
文件。然后我在所有 3 个文件中更改了
android:theme

© www.soinside.com 2019 - 2024. All rights reserved.