Android manifest 与 facebook 和 firebase 库合并

Posted

技术标签:

【中文标题】Android manifest 与 facebook 和 firebase 库合并【英文标题】:Android manifest merger with facebook and firebase libraries 【发布时间】:2016-11-01 06:35:45 【问题描述】:

我在我的项目中导入了 2 个库(在 gradle 文件中):

...
/* Firebase UI */
compile 'com.firebaseui:firebase-ui:0.4.0'

/* Facebook login */
compile 'com.facebook.android:facebook-android-sdk:4.13.0'

但是在构建我的项目时出现以下错误:

D:\Android\Projects\quoter\app\src\main\AndroidManifest.xml:68:13-58 错误:属性活动#com.facebook.FacebookActivity@theme value=(@style/FirebaseUI.Translucent) 来自 [com.firebaseui:firebase-ui-auth:0.4.0] AndroidManifest.xml:68:13-58 也出现在 [com.facebook.android:facebook-android-sdk:4.13.0] AndroidManifest.xml:32:13-72 值=(@android:style/Theme.Translucent.NoTitleBar)。建议:加 'tools:replace="android:theme"' 到元素 AndroidManifest.xml:64:9-68:61 覆盖。

我找到了包含 Facebook sdk 和 Firebase UI 库清单文件的扩展 jar,但我不确定更改它们是否是解决此错误的正确方法,因为每次我清理并重新构建我的新项目时清单也会生成...

我该如何解决这个错误?在我看来,这两个库之间不兼容......

注意:在我的应用清单中添加以下内容

<application
    tools:node="replace"

解决了这个问题,但是由于 Firebase 没有正确初始化,所以无法启动应用程序(参见https://***.com/a/38060272/6503817)

【问题讨论】:

我解决了在我的应用程序清单中定义有问题的 DavideN 谢谢!你节省了我玩它的时间! 【参考方案1】:

FirebaseUI 已经为您编译了 Facebook,因此当您尝试同步时,它基本上会抛出错误,因为您尝试编译相同的东西两次。

删除compile 'com.facebook.android:facebook-android-sdk:4.13.0' 并保留:compile 'com.firebaseui:firebase-ui:0.4.0'

你就完成了!

别担心!您仍然可以使用 Facebook 登录

【讨论】:

【参考方案2】:

很遗憾,“tools:replace”对我不起作用,但 Firebase UI 中的 GitHub 问题有一个解决方案 https://github.com/firebase/FirebaseUI-Android/issues/230

但 FirebaseUI 已经依赖于 SDK 4.11.0 版本。你可以尝试移除你的 Facebook 依赖,只依赖 FirebaseUI 带来的传递依赖吗?

【讨论】:

【参考方案3】:

我建议您浏览一下文档,提供FirebaseUI Android 和FirebaseUI Auth Android。它们非常彻底,很可能会消除您的疑虑。

【讨论】:

以上是关于Android manifest 与 facebook 和 firebase 库合并的主要内容,如果未能解决你的问题,请参考以下文章

与 android manifest 上的活动标签冲突:Unity3d 中的 Facebook 和 Google Play 游戏

Android MANIFEST.MF 等效项

解决Android Studio添加依赖时出现“Manifest merger failed

Android解决android:supportsRtl 不生效或者 manifest文件出错

android api21下manifest中权限声明怎么写

Android Manifest XML:组件的声明