2016-09-28 3 views
36

У меня естьКак решить инструменты Facebook: replace = "android: theme"?

compile 'com.facebook.android:facebook-android-sdk:4.16.0' 

Мой манифест:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
... 
    <application 
      android:name=".YandexProvider" 
      android:allowBackup="true" 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name" 
      android:theme="@style/AutoTheme" 
      tools:replace="android:theme"> 

Как решить ошибку компиляции:

Error:Execution failed for task ':app:processDebugManifest'. 
> Manifest merger failed : Attribute activity#[email protected] 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. 
+0

Это показывает ошибку на активности метки. Вам нужно удалить стиль или предоставить инструменты: replace = "android: theme" в ваш тег . Вставьте весь файл манифеста. –

+1

Это некоторая ошибка в Facebook SDK v4.16 http://stackoverflow.com/a/39748440/983914 – oleynikd

+0

[просто следуйте по этой ссылке.] (Http://stackoverflow.com/a/39748440/2017098) вы будете найти ответ .. – Damindu

ответ

70

1) Добавить xmlns:tools="http://schemas.android.com/tools" в <manifest> элемент в AndroidManifest

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

Я не согласен. Нет необходимости добавлять 'xmlns: tools =" http://schemas.android.com/tools "к и добавлять' tools: replace = "android: theme" 'в . Лучше просто удалить «android: theme =» @ android: style/Theme.Translucent.NoTitleBar «из тега xml, так как в него уже включен последний SDK версии 4.16.1. Но в любом случае это работает, поэтому с этой точки зрения это не имеет значения. – kimbaudi

+0

Спасибо @kimbag, я обновлю свой комментарий. –

+0

@kimbum Вы можете поделиться с вами информацией о Facebook SDK 4.16.1, включая 'android: theme'? Facebook [официальные документы] (https://developers.facebook.com/docs/facebook-login/android#prerequisites) по-прежнему рекомендуют добавлять атрибут 'android: theme'. –

4

В манифесте, удалить

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

в FacebookA ctivity

Редактировать: Вы также используете firebase? Если да, то посмотрите здесь Android manifest merger with facebook and firebase libraries

+0

FacebookActivity это класс файл находится в библиотеке – NickUnuchek

+0

Можете ли вы показать файл манифеста? –

+0

Я тоже предпочитаю это решение. – kimbaudi

1

Вы просто должны использовать это в манифесте для FacebookActivity

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

Попробуйте это.

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

Не нужно заменять. Просто удалите 'android: theme =" @ android: style/Theme.Translucent.NoTitleBar "' – kimbaudi

0

удалить эту строку @android: стиль/Theme.Translucent.NoTitleBar

это решит вашу проблему

 Смежные вопросы

  • Нет связанных вопросов^_^