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>
试试这个。
<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" />
在您的清单中,删除
android:theme="@android:style/Theme.Translucent.NoTitleBar"
在Facebook活动中
编辑: 您也使用 firebase 吗?如果是这样,请在此处查看Android 清单与 facebook 和 firebase 库的合并
您只需在 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" />
删除此行
@android:style/Theme.Translucent.NoTitleBar
这将解决您的问题
(这样你就可以避免明显的属性冲突)
在我的例子中,我更改了属性
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
。