Search code examples
androidmavenandroid-studioandroid-contentproviderfacebook-android-sdk

Android Studio - Cannot resolve symbol FacebookContentProvider


I'm using the Facebook SDK 3.22.0 from Maven. Building for Android SDK version 15. I'm also using Android Studio 1.1.0 with Gradle.

In AndroidManifest.xml I'm trying to use the FacebookContentProvider, but every time I try, I get the issue Cannot resolve symbol FacebookContentProvider. Any ideas on how to solve this?

The specific line I'm having an issue with is:

<provider android:authorities="com.facebook.app.FacebookContentProvider1234"
              android:name="com.facebook.FacebookContentProvider"
              android:exported="true"/>

Here's my AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.whatever"
android:versionCode="100"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="11" />

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.MICROPHONE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">

    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>

    <activity
        android:name="com.whatever.MainActivity"
        android:label="@string/app_name" 
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name="com.google.android.gms.ads.AdActivity"
              android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode"
              android:theme="@android:style/Theme.Translucent" />

    <activity android:name="com.facebook.LoginActivity"
              android:theme="@android:style/Theme.Translucent.NoTitleBar"
              android:label="@string/app_name" />

    <activity android:name="com.whatever.Friends"
              android:screenOrientation="portrait" />
    <activity android:name="com.whatever.Recent"
              android:screenOrientation="portrait">
    </activity>

    <provider android:authorities="com.facebook.app.FacebookContentProvider1234"
              android:name="com.facebook.FacebookContentProvider"
              android:exported="true"/>
</application>

Here's my build.gradle:

apply plugin: 'com.android.application'

dependencies {
    compile 'org.apache.httpcomponents:httpclient-android:4.3.5.1'
    compile('org.apache.httpcomponents:httpmime:4.3') {
        exclude module: "httpclient"
    }
    compile 'com.google.android.gms:play-services:6.5.87'
    compile 'com.facebook.android:facebook-android-sdk:3.22.0'
}

android {
    compileSdkVersion 15
    buildToolsVersion "21.1.2"
    defaultConfig {
        applicationId "com.whatever"
        minSdkVersion 15
        targetSdkVersion 15
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/DEPENDENCIES'
    }
    productFlavors {
    }
}

Solution

  • Unfortunately you can't use FacebookContentProvider with Facebook SDK version 3.22.0 since it was introduced with version 4.0.0 as you can see on GitHub:

    https://github.com/facebook/facebook-android-sdk/commits/master/facebook/src/com/facebook/FacebookContentProvider.java

    You have two solutions: