FacebookSdk.sdkInitialize (Bağlam) kullanımdan kaldırıldı


102

Android Studio'da facebook-android-sdk-4.19.0 kullanıyorum ve https://developers.facebook.com/docs/android/getting-started adresindeki Facebook hızlı başlangıç ​​kılavuzunu takip ettim (Hızlı Başlangıç ​​düğmesine tıklayın. kendi facebook hesabınızla giriş yapın). Kılavuzda, uygulama günlüklerini izlemek için aşağıdaki kodu snippet'e kopyalayıp yapıştırmanız söylenir

import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(this);
    }
}

Ancak, android stüdyosundaki kodu kopyaladığımda, tüm FacebookSdk.sdkInitialize () yöntemlerinin kullanımdan kaldırıldığı anlaşılıyor. Https://developers.facebook.com/docs/reference/android/current/class/FacebookSdk/ buradaki dokümantasyon , sdkInitialize () yerine sdk'yi başlatmak için hangi yöntemin kullanılacağı hakkında hiçbir şey söylemez. Hangi yöntemi kullanmalıyım?


1
Cevap size yardımcı olduysa, lütfen doğru cevap olarak işaretleyin veya hala aynı sorunu yaşıyorsanız aramaya devam edebiliriz.
Yupi

Yanıtlar:


133

SDK'yı yükseltmeyle ilgili belgelerden:

Facebook SDK artık Uygulama başladığında otomatik olarak başlatılır. Ana işlemde Facebook SDK kullanıyorsanız ve SDK başlatma tamamlandığında bir geri aramaya ihtiyacınız yoksa artık FacebookSDK.sdkInitialize çağrılarını kaldırabilirsiniz. Bir geri aramaya ihtiyacınız varsa, kodunuzda geri aramayı manuel olarak başlatmalısınız.

Bakın: https://developers.facebook.com/docs/android/upgrading-4x

GÜNCELLEME

SDK 4.22 yılında title, description, captionve imagesaha içinde FBSDKShareLinkContentkullanımdan kaldırılmıştır. Bunları kullanımdan kaldırmayı düşünün.


1
Otomatik başlatma geri çağrısı ne olacak?
Konstantin Konopko

8
FB SDK "on Application start"herhangi bir şey eklemeye gerek kalmadan kendini nasıl başlatmayı başarır Application.onCreate()?
Sébastien

5
Kendi yorumuma cevap veriyorum: v4.19.0'dan bu yana, Facebook SDK başlatması bir ContentProvider tarafından yapıldı ve uygulama manifestinde ilan edildi: github.com/facebook/facebook-android-sdk/commit/…
Sébastien

() SdkInitialize denilen yerde Teşekkür Sébastien, ben forma dışarı rakama, çok fazla zaman harcamak
Vahe Gharibyan

2
SdkInitialize satırını kaldırırsam, bazı kullanıcılar şu istisnayı karşılamaya devam eder: "Facebook sdk, activApp'i çağırmadan önce başlatılmalıdır", sdk sürümü: 4.27.0, Android sürüm 5.0
diousk

13
FacebookSdk.sdkInitialize(getApplicationContext()); 

Bu yöntem kullanımdan kaldırılmıştır, bu nedenle sınıfınızdaki bu kod satırını silin. çünkü en son Facebook'a göre artık SDK'yı manuel olarak başlatmamız gerekmiyor, kendi kendine başlatılıyor.


4

Dolayısıyla, kullanımdan kaldırılmış yöntemleri çağırmak yerine, AppEventsLogger.activateApp(Application)uygulama sınıfınızın onCreate ()

public class MyApplication extends Application{

    @Override
    public void onCreate() {
        super.onCreate();
        AppEventsLogger.activateApp(getApplication());
    }
}

1
Göre bu public static void activateApp(Context context) kullanımdan kaldırıldı. Kullanımı önerir bu . Ben yerini Bunun için MainActivity.thisbirlikte getApplication().
Nikhil Wagh

2
MyApplication.thisaynı Applicationnesnedir. Onu değiştirmenin ne olduğunu sorabilir miyim getApplication()? Ben basitçe kullanıyorum this(ile aynı MyApplication.this) ve şu şekilde alındıApplication
vida

1

Benim gereksinimim, uygulama başlatılırken autoInit'i devre dışı bırakmak ve onu Activity'in onCreate yönteminden başlatmaktı. Uygulama başlatılmadan önce AutoInit, flutter uygulamamın yavaş ağ bağlantılarında başlamasına neden oluyordu.

  1. Manifest'ten AutoInit'i devre dışı bırak

    <meta-data android:name="com.facebook.sdk.AutoInitEnabled"
        android:value="false"/>
  2. Aktivitenin onCreate yönteminde Fb sdk'yi başlat

    FacebookSdk.fullyInitialize();
    AppEventsLogger.activateApp(application);

1

FacebookSdk.sdkInitialize(getApplicationContext());

Facebook belgesinin dediği gibi bu yönteme gerek yok: Bu işlev, Facebook SDK'sını başlatır, Facebook uygulama kimliği gibi AndroidManifest'te uygun girişler listelenirse, uygulama başlatılırken otomatik olarak çağrılır. 'ActivApp'tan otomatik olay günlüğü,' com.facebook.sdk.AutoLogAppEventsEnabled 'bildirim ayarı aracılığıyla kontrol edilebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.