Использование facebook sdk в студии android

Я следую Facebook SDK для Android с помощью Android Studio . Когда я запускаю свое приложение, я получаю предупреждение ниже.

Gradle: module 'facebook' won't be compiled. Unfortunately you can't have non-Gradle Java module and Android-Gradle module in one project. 

Как мне это решить? Заранее спасибо!

UPDATE1:

Я попробовал ответить @Scott Barta и получил следующее сообщение об ошибке.

  A problem occurred configuring project ':App'. > Failed to notify project evaluation listener. > A problem occurred configuring project ':libraries:facebook'. > Failed to notify project evaluation listener. > Could not resolve all dependencies for configuration ':libraries:facebook:_DebugCompile'. > Could not find any version that matches com.android.support:support-v4:+. Required by: MyApplication2.libraries:facebook:unspecified 

Solutions Collecting From Web of "Использование facebook sdk в студии android"

ЗАМЕТКА

Для Android Studio 0.5.5 и более поздних версий и более поздних версий SDK для Facebook этот процесс намного проще, чем описано ниже (что было написано для более ранних версий обоих). Если вы используете последнее, все, что вам нужно сделать, это:

  1. Загрузите SDK для Facebook из https://developers.facebook.com/docs/android/
  2. Распаковать архив
  3. В Android Studio 0.5.5 или новее выберите «Импорт модуля» в меню «Файл».
  4. В мастере установите исходный путь модуля для импорта в качестве каталога «facebook» в распакованном архиве. (Примечание. Если вы выберете всю родительскую папку, в нее войдет не только сама библиотека, но и все примеры приложений, каждая из которых будет отдельным модулем. Это может работать, но, вероятно, это не то, что вы хотите).
  5. Откройте структуру проекта Ctrl + Shift + Alt + S а затем выберите вкладку зависимостей. Нажмите кнопку + и выберите «Зависимость модуля». В новом окне выберите « :facebook.
  6. Вы должны идти хорошо.

Инструкции для старых Android-студий и старых SDK для Facebook

Это относится к Android Studio 0.5.4 и более ранним версиям и наиболее подходит для версий SDK для Facebook до того, как Facebook предложит файлы сборки Gradle для распространения. Я не знаю, в какой версии SDK они сделали это изменение.

Инструкции Facebook в разделе «Импорт SDK в проект Android Studio» на странице https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android-using-android-studio/3.0/ неверны Для проектов на основе Gradle (т. build.gradle Ваш проект был создан с использованием мастера New Project от Android Studio и / или имеет файл build.gradle для вашего прикладного модуля). Вместо этого выполните следующие инструкции:

  1. Создайте папку с libraries под основным каталогом вашего проекта. Например, если ваш проект HelloWorldProject, вы должны создать папку HelloWorldProject/libraries .

  2. Теперь скопируйте весь каталог facebook из установки SDK в только что созданную папку libraries .

  3. Удалите папку libs каталоге facebook . Если хотите, удалите project.properties , build.xml , .classpath и .project . Файлы. Вы им не нужны.

  4. Создайте файл build.gradle в каталоге facebook со следующим содержимым:

     buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6.+' } } apply plugin: 'android-library' dependencies { compile 'com.android.support:support-v4:+' } android { compileSdkVersion 17 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 7 targetSdkVersion 16 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] } } } 

    Обратите внимание, что в зависимости от того, когда вы выполняете эти инструкции по сравнению с тем, когда это написано, вам может потребоваться classpath 'com.android.tools.build:gradle:0.6.+' строку classpath 'com.android.tools.build:gradle:0.6.+' для ссылки на более новую версию плагина Gradle , Скоро нам понадобится версия 0.7 или новее. Попробуйте, и если вы получите сообщение об ошибке, требующей более новой версии плагина Gradle, это строка, которую вы должны отредактировать.

  5. Убедитесь, что установлена библиотека поддержки Android в вашем менеджере SDK.

  6. Измените файл settings.gradle в главном каталоге приложения и добавьте эту строку:

     include ':libraries:facebook' 
  7. Если ваш проект уже открыт в Android Studio, нажмите кнопку «Sync Project with Gradle Files» на панели инструментов. Как только это будет сделано, появится модуль facebook . Введите описание изображения здесь

  8. Откройте диалоговое окно «Структура проекта». Выберите «Модули» из левого списка, нажмите модуль вашего приложения, перейдите на вкладку «Зависимости» и нажмите кнопку «+», чтобы добавить новую зависимость. Введите описание изображения здесь
  9. Выберите «Зависимость модуля». Он выведет диалог со списком модулей на выбор; Выберите ": libraries: facebook". Введите описание изображения здесь
  10. Нажмите ОК во всех диалоговых окнах. Android Studio автоматически пересинхронизирует ваш проект (что делает ненужным щелчок по кнопке «Sync Project with Gradle Files» еще раз) и забрать новую зависимость. Вы должны идти хорошо.

Facebook действительно добавил SDK в репозитории Maven Central. Чтобы настроить проект, используя экземпляр maven repo, вам нужно сделать 2 вещи:

  1. В файле проекта build.gradle верхнего уровня добавьте репозитории Maven Central. Мой выглядит так:

     repositories { jcenter() // This is the default repo mavenCentral() // This is the Maven Central repo } 
  2. В файле build.grade на уровне приложения добавьте зависимость sdk от Facebook:

     dependencies { compile 'com.facebook.android:facebook-android-sdk:4.5.0' // Adjust the version accordingly // All your other dependencies. } 

Вы также можете настроить конкретную версию SDK для Facebook. Для получения списка доступных версий в репозитории maven нажмите эту ссылку.

Facebook публикует SDK на центральном сервере maven:

Просто добавь :

 repositories { jcenter() // IntelliJ main repo. } dependencies { compile 'com.facebook.android:facebook-android-sdk:+' } 

Решение Скотта Барты работало для меня, за исключением того, что я должен был добавить их в зависимости от моего основного файла build.gradle проекта:

 compile files('libs/android-support-v4.jar') compile project(':libraries:facebook') 

Также стоит упомянуть, вам нужно убедиться:

 android { compileSdkVersion 18 buildToolsVersion "18.1.1" defaultConfig { minSdkVersion 7 targetSdkVersion 18 } 

То же самое и в файлах build.gradle … Как только я это сделал, он работал как шарм.

При использовании git вы можете легко использовать новейший фейсбук-андроид-sdk.

  • Добавить facebook-android-sdk в качестве подмодуля: git submodule add https://github.com/facebook/facebook-android-sdk.git
  • Добавьте sdk в качестве проекта градиента: отредактируйте settings.gradle и добавьте строку: include ':facebook-android-sdk:facebook'
  • Добавить sdk как зависимость от модуля: отредактировать build.gradle и добавить в блок зависимостей: compile project(':facebook-android-sdk:facebook')

Я развернул Facebook Android SDK в репозиторий Sonatype.

Вы можете включить эту библиотеку в зависимость от Gradle:

 repositories { maven { url 'https://oss.sonatype.org/content/groups/public' } } dependencies { compile 'com.shamanland:facebook-android-sdk:3.15.0-SNAPSHOT' } 

Оригинальный пост здесь .

Многие ответы есть, но я хочу показать самый простой способ получить доступ к facebook в приложении Android. Я использую следующую ссылку для справки: facebook login android studio

Добавьте ниже в build.gradle(Module:app) :

 repositories { mavenCentral() } 

а также

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

Теперь добавьте ниже в файл AndroidManifest.xml:

  <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="your app id from facebook developer console"/> <activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:label="@string/app_name" /> Размер  <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="your app id from facebook developer console"/> <activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:label="@string/app_name" /> 

Добавить в файл activity_main.xml следующее:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.demonuts.fblogin.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000" android:layout_marginLeft="10dp" android:textAppearance="?android:attr/textAppearanceMedium" android:id="@+id/text"/> <com.facebook.login.widget.LoginButton android:id="@+id/btnfb" android:layout_gravity="center_horizontal" android:layout_marginTop="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 

И в последнем добавить ниже в файле MainActivity.java:

 import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Base64; import android.util.Log; import android.widget.TextView; import com.facebook.AccessToken; import com.facebook.AccessTokenTracker; import com.facebook.CallbackManager; import com.facebook.FacebookCallback; import com.facebook.FacebookException; import com.facebook.FacebookSdk; import com.facebook.GraphRequest; import com.facebook.GraphResponse; import com.facebook.Profile; import com.facebook.ProfileTracker; import com.facebook.login.LoginResult; import com.facebook.login.widget.LoginButton; import org.json.JSONException; import org.json.JSONObject; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; public class MainActivity extends AppCompatActivity { private TextView tvdetails; private CallbackManager callbackManager; private AccessTokenTracker accessTokenTracker; private ProfileTracker profileTracker; private LoginButton loginButton; private FacebookCallback<LoginResult> callback = new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { GraphRequest request = GraphRequest.newMeRequest( loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject object, GraphResponse response) { Log.v("LoginActivity", response.toString()); // Application code try { Log.d("tttttt",object.getString("id")); String birthday=""; if(object.has("birthday")){ birthday = object.getString("birthday"); // 01/31/1980 format } String fnm = object.getString("first_name"); String lnm = object.getString("last_name"); String mail = object.getString("email"); String gender = object.getString("gender"); String fid = object.getString("id"); tvdetails.setText(fnm+" "+lnm+" \n"+mail+" \n"+gender+" \n"+fid+" \n"+birthday); } catch (JSONException e) { e.printStackTrace(); } } }); Bundle parameters = new Bundle(); parameters.putString("fields", "id, first_name, last_name, email, gender, birthday, location"); request.setParameters(parameters); request.executeAsync(); } @Override public void onCancel() { } @Override public void onError(FacebookException error) { } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(this); setContentView(R.layout.activity_main); tvdetails = (TextView) findViewById(R.id.text); loginButton = (LoginButton) findViewById(R.id.btnfb); callbackManager = CallbackManager.Factory.create(); accessTokenTracker= new AccessTokenTracker() { @Override protected void onCurrentAccessTokenChanged(AccessToken oldToken, AccessToken newToken) { } }; profileTracker = new ProfileTracker() { @Override protected void onCurrentProfileChanged(Profile oldProfile, Profile newProfile) { } }; accessTokenTracker.startTracking(); profileTracker.startTracking(); loginButton.setReadPermissions(Arrays.asList("public_profile", "email", "user_birthday", "user_friends")); loginButton.registerCallback(callbackManager, callback); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackManager.onActivityResult(requestCode, resultCode, data); } @Override public void onStop() { super.onStop(); accessTokenTracker.stopTracking(); profileTracker.stopTracking(); } @Override public void onResume() { super.onResume(); Profile profile = Profile.getCurrentProfile(); } } 

Люди, использующие Android Studio 0.8.6, могли бы сделать это:

  1. Скачайте Facebook-android-sdk-xxx.zip и распакуйте его
  2. Скопируйте только facebook dir в директорию Facebook-android-sdk-xxx в свой проект вместе с приложением /

    • ImAnApp /
      • | – Общение
      • | – Общение
      • | – Общение
  3. Теперь вы должны увидеть Android Studio, показывающую facebook как модуль

  4. Измените build.gradle в facebook.
    • ('../ libs / bolts.jar') к provided files('./libs/bolts.jar')
    • CompileSdkVersion Integer.parseInt (project.ANDROID_BUILD_SDK_VERSION) для compileSdkVersion 20 или другой версии, определенной вами в приложении
    • BuildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION для buildToolsVersion '20.0.0'
    • MinSdkVersion Integer.parseInt (project.ANDROID_BUILD_MIN_SDK_VERSION) в minSdkVersion 14
    • TargetSdkVersion Integer.parseInt (project.ANDROID_BUILD_TARGET_SDK_VERSION) для targetSdkVersion 20

  apply plugin: 'android-library' dependencies { compile 'com.android.support:support-v4:19.1.+' provided files('./libs/bolts.jar') } android { compileSdkVersion 20 buildToolsVersion '20.0.0' defaultConfig { minSdkVersion 14 targetSdkVersion 20 } lintOptions { abortOnError false } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] res.srcDirs = ['res'] } } } 

Resync ваш файл gradle, и он должен просто работать нормально!

Я исправил

«Не удалось найти свойство« ANDROID_BUILD_SDK_VERSION »в проекте« facebook ».»

Ошибка в файле build.gradle , добавив в gradle.properties значения:

 ANDROID_BUILD_TARGET_SDK_VERSION=21<br> ANDROID_BUILD_MIN_SDK_VERSION=15<br> ANDROID_BUILD_TOOLS_VERSION=21.1.2<br> ANDROID_BUILD_SDK_VERSION=21<br> 

Источник: https://stackoverflow.com/a/21490651/2161698

Создайте файл build.gradle в проекте facebook sdk:

 apply plugin: 'android-library' dependencies { compile 'com.android.support:support-v4:18.0.+' } android { compileSdkVersion 8 buildToolsVersion "19.0.0" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } // Move the build types to build-types/<type> // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... // This moves them out of them default location under src/<type>/... which would // conflict with src/ being used by the main source set. // Adding new build types or product flavors should be accompanied // by a similar customization. debug.setRoot('build-types/debug') release.setRoot('build-types/release') } } 

Затем добавьте include ':libs:facebook' equals <project_directory>/libs/facebook (путь к библиотеке) в settings.gradle .

* Gradle Repository для SDK для Facebook.

 dependencies { compile 'com.facebook.android:facebook-android-sdk:4.4.0' } 

Поиск последней версии facebook sdk

Использование facebook sdk в студии Android довольно просто, просто добавьте следующую строку в свою граду

  compile 'com.facebook.android:facebook-android-sdk:[4,5)' 

И убедитесь, что вы обновили репозиторий поддержки Android, если не обновите его с помощью автономного sdk manger