Слияние манифеста Android с библиотеками facebook и firebase

Я импортировал в свой проект 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, но я не уверен, что их изменение - правильный способ решить эту ошибку, потому что каждый раз, когда я очищаю и перестраиваю свой проект, новые манифесты также сгенерировано ...

Как я могу решить эту ошибку? Мне кажется несовместимость двух библиотек ...

Примечание: добавление в мое приложение манифеста следующего

<application
    tools:node="replace"

решить эту проблему, но невозможно запустить приложение, потому что Firebase неправильно инициализирована (см. https://stackoverflow.com/a/38060272/6503817)


person DavideN    schedule 29.06.2016    source источник
comment
Я решил проблему, указав проблемную ‹активность в манифесте моего приложения. Я добавил следующее: ‹инструменты активности: replace = theme android: name = com.facebook.FacebookActivity android: configChanges = keyboard | keyboardHidden | screenLayout | screenSize | Ориентация android: theme = @ android: style / Theme.Translucent.NoTitleBar /›   -  person DavideN    schedule 29.06.2016
comment
DavideN Спасибо! Вы сэкономили мне часы игры с ним!   -  person mysliwiec_tech    schedule 11.07.2016


Ответы (3)


FirebaseUI уже компилирует Facebook для вас, поэтому, когда вы пытаетесь синхронизировать, он в основном выдает ошибку, потому что вы пытаетесь скомпилировать одно и то же дважды.

Удалите compile 'com.facebook.android:facebook-android-sdk:4.13.0' и оставьте: compile 'com.firebaseui:firebase-ui:0.4.0'

и готово!

Не волнуйтесь! У вас по-прежнему будет вход в Facebook

person bluesummers    schedule 17.09.2016

К сожалению, «tools: replace» у меня не сработало, но для проблемы с GitHub в пользовательском интерфейсе Firebase есть решение https://github.com/firebase/FirebaseUI-Android/issues/230

Но FirebaseUI уже зависит от версии 4.11.0 SDK. Можете ли вы попробовать удалить свою зависимость от Facebook и просто полагаться на транзитивную зависимость, введенную FirebaseUI?

person jpf    schedule 04.08.2016

Я бы порекомендовал вам один раз просмотреть документацию при условии, что FirebaseUI Android и FirebaseUI Auth Android. Они довольно тщательные и, скорее всего, развеют ваши сомнения.

person MakeBugsNotWar    schedule 22.11.2017