Android Studio 1.1.0 Facebook SDK Login

Я пытаюсь протестировать логин с помощью facebook SDK.

Поэтому я добавляю с compile 'com.facebook.android:facebook-android-sdk:4.0.0' .

Затем добавьте FacebookSdk.sdkInitialize(getApplicationContext()); Пожаловать в MainActivity.java

Но когда я добавляю

  <com.facebook.login.widget.LoginButton android:id="@+id/login_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="30dp" android:layout_marginBottom="30dp" />` 

У меня есть следующая ошибка :

 Rendering Problems The following classes could not be instantiated: com.facebook.login.widget.LoginButton (Open Class, Show Exception) Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE Exception Details java.lang.NoClassDefFoundError: Could not initialize class com.facebook.login.widget.LoginButton at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:385) Copy stack to clipboard 

Solutions Collecting From Web of "Android Studio 1.1.0 Facebook SDK Login"

Импортирование SDK Facebook в качестве модуля и добавление его в зависимости должно помочь вам, кстати, если вы столкнулись с этой проблемой:

 Error:(13, 0) Could not find property 'ANDROID_BUILD_MIN_SDK_VERSION' on project 

Проверьте это обсуждение:

Проблема с модулем импорта

Удачи !

Вы не указали свой код операции. Но я думаю, что ваш код похож:

 setContentView(R.layout.my_login_layout); FacebookSdk.sdkInitialize(getApplicationContext()); mCallbackManager = CallbackManager.Factory.create(); 

Проблема заключается в порядке кода. Игнорируйте «Render problems» в макете, измените порядок кода на это:

 FacebookSdk.sdkInitialize(getApplicationContext()); mCallbackManager = CallbackManager.Factory.create(); // this line doesn't matter setContentView(R.layout.my_login_layout); 

Используйте этот код в OnCreate (…) {…}

Избегайте проблем с отображением макета

Если вы хотите решить проблемы с рендерингом (предварительный просмотр макета), проверьте ответ @ Nathan30 (см. Ниже).

  1. Загрузить Facebook SDK
  2. Импортируйте его в качестве модуля в свой проект
  3. Затем добавьте <com.facebook.widget.LoginButton .../> к вашему макету.

Простая, быстрая и простая: обновите версию SDK на Gradle -> Dependencies до последней версии, и проблема рендеринга решена. На момент написания этого, последняя версия SDK для Facebook – это 4.3.0, так что это должно выглядеть как на Dependencies :

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

Просто для меня была написана другая версия Facebook SDK. build.graddle часть зависимостей файла build.graddle . Моя похожа;

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

Версия 4.0.0 постоянно бросала исключение

Мне не пришлось импортировать SDK Facebook в качестве модуля

Мне пришлось поиграть с различными версиями SDK, как это доступно здесь.

Для тех, у кого есть эта проблема рендеринга, я нахожу решение. Я больше не использую зависимости gradle.build с SDK для facebook. Я загружаю SDK с веб-сайта Facebook, и я импортирую модуль в свой проект в Android Studio. Затем добавьте

 <com.facebook.widget.LoginButton android:id="@+id/authButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="45dp" /> 

К вашему макету xml

Я пробовал это, и он работает

Добавлено это в зависимости

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

Введите описание изображения здесь

  public class MainActivity extends Activity { CallbackManager callbackManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(getApplicationContext()); callbackManager = CallbackManager.Factory.create(); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } } 

Введите описание изображения здесь