21

Hej Wiem, że to było wcześniej zadawane, ale żadne z rozwiązań nie wydaje się pomóc. Używam po raz pierwszy Facebook SDK w mojej aplikacji.Facebook Sdk nie został uśpiony

Co próbowałem:

Próbowałem większość rzeczy znalezionych Internecie ale nie dostał nic odnośnie tego produktu.

Oto moja MainActivity.java:

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    } 
} 

Oto mój Activitymain.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:facebook="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<com.facebook.login.widget.LoginButton 
    android:id="@+id/connectWithFbButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:layout_gravity="center_horizontal" 
    android:text=" connect_with_facebook" /> 
</LinearLayout> 

zobaczyć mój Logcat:

05-13 16:30:39.332: E/AndroidRuntime(10264): Caused by: The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first. 

Odpowiedz

41

Musisz użyć FacebookSdk.sdkInitialize(getApplicationContext());przedsetContentView(R.layout.activity_main); jako documentation stwierdza się. Jeśli potrzebujesz pełnego przykładu logowania na Facebooka, check this one here.

+0

Gdy używam "FacebookSdk.sdkInitialize (getApplicationContext());", pojawia się błąd: "Nie można rozwiązać symbolu" FacebookSdk "". Ten sam błąd występuje, gdy próbuję "importować com.facebook.FacebookSdk;". Używam Facebook SDK 3.23.1. Jak mogę zainicjować pakiet SDK w wersji 3.23.1? Twoje rozwiązanie działa tylko dla pakietu Facebook SDK 4.x. –

+0

@JimeimeMontoya Naprawdę zalecam korzystanie z [najnowszej wersji SDK] (https://developers.facebook.com/docs/android/). –

+0

Idealnie powinienem to zrobić. Jednak w krótkiej perspektywie próbuję użyć Facebook SDK v3.23.1, ponieważ aktualizacja do wersji SDK 4.x wymagałaby poważnych zmian w kodzie źródłowym, które nie byłyby realistycznie stosowane z dnia na dzień. Jak mogę zainicjować pakiet SDK serwisu Facebook w wersji 3.23.1? Badałem https://developers.facebook.com/docs/reference/android/3.23/ i zastanawiam się, czy można go zainicjować. Jeśli nie, czy mogę nadal wdrażać zdarzenia aplikacji na Androida w Androidzie bez inicjowania SDK v3.23.1? –

0

Zastosowanie Uruchomienie oddzwaniania Konstruktor tak:

Handler mHandler = new Handler(); 
      FacebookSdk.InitializeCallback initializeCallback = new FacebookSdk.InitializeCallback() { 
       @Override 
       public void onInitialized() { 

        mHandler.post(new Runnable() { 
         @Override 
         public void run() { 
          //UI Code Here 
         } 
        }); 
       } 
      }; 
    //before setContentView() 
FacebookSdk.sdkInitialize(getActivity().getApplicationContext(),initializeCallback); 
2

Po sprawdzeniu documentation Okazało się, że są one z prośbą o zainicjować FacebookSdk w klasie Application onCreate() Method.

Snap kod z Facebooka doc:

public class MyApplication extends Application { 
// Updated your class body: 
@Override 
public void onCreate() { 
    super.onCreate(); 
    // Initialize the SDK before executing any other operations, 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    AppEventsLogger.activateApp(this); 
    } 
} 
+0

pracował dla mnie :) – Abhilash

+0

to jest teraz przestarzałe. – lenooh

3

Nie trzeba używać FacebookSdk.sdkInitialize więcej. Sprawdź, czy:

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

znajduje się wewnątrz znacznika <application>.