FacebookSdk.sdkInitialize (संदर्भ) पदावनत है


102

मैं एंड्रॉइड स्टूडियो में facebook-android-sdk-4.19.0 का उपयोग कर रहा हूं और मैंने https://developers.facebook.com/docs/android/getting-started पर फेसबुक क्विक स्टार्ट गाइड का अनुसरण किया (क्विक स्टार्ट बटन पर क्लिक करें) अपने खुद के फेसबुक अकाउंट से साइन इन करें)। गाइड में, यह एप्लिकेशन लॉग को ट्रैक करने के लिए स्निपेट में निम्नलिखित कोड को कॉपी और पेस्ट करना बताया गया है

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);
    }
}

हालाँकि, जब मैंने एंड्रॉइड स्टूडियो में कोड पेस्ट किया, तो ऐसा प्रतीत होता है कि FacebookSdk.sdkInitialize () के सभी तरीकों को हटा दिया गया है। यहाँ प्रलेखन https://developers.facebook.com/docs/reference/android/current/class/FacebookSdk/ sdkInitialize () के बजाय sdk को इनिशियलाइज़ करने के लिए किस विधि का उपयोग करना है, इसके बारे में कुछ नहीं बताता है। मुझे किस विधि का उपयोग करना चाहिए?


1
यदि उत्तर ने आपको सही उत्तर के रूप में चिह्नित करने में मदद की है या यदि आपको अभी भी वही समस्या है तो हम खोज जारी रख सकते हैं।
युपी

जवाबों:


132

SDK को अपग्रेड करने के बारे में प्रलेखन से:

फेसबुक एसडीके अब एप्लीकेशन स्टार्ट पर ऑटो इनिशियलाइज्ड है। यदि आप मुख्य प्रक्रिया में फेसबुक एसडीके का उपयोग कर रहे हैं और एसडीके आरंभीकरण पूरा होने पर आपको कॉलबैक की आवश्यकता नहीं है, तो अब आप फेसबुकएसडीके.एसडीकेइन्सेलाइज़ को कॉल हटा सकते हैं। यदि आपको कॉलबैक की आवश्यकता है, तो आपको अपने कोड में कॉलबैक को मैन्युअल रूप से लागू करना चाहिए।

इसका संदर्भ लें: https://developers.facebook.com/docs/android/upmission-4x

अपडेट करें

एसडीके 4.22 में title, description, captionऔर imageके क्षेत्रFBSDKShareLinkContent पदावनत कर रहे हैं। उन्हें उपयोग से हटाने पर विचार करें।


2
समझ गया। धन्यवाद।
ओजां

1
ऑटो इनिशियलाइज़ेशन के कॉलबैक के बारे में क्या?
कोनस्टेंटिन कोनपोको

8
FB SDK "on Application start"बिना किसी चीज को जोड़ने की आवश्यकता के बिना खुद को इनिशियलाइज़ करने का प्रबंधन कैसे करता है Application.onCreate()??
सेबास्टियन

5
अपने ही टिप्पणी का जवाब: v4.19.0 के बाद से, फेसबुक एसडीके आरंभीकरण एक ContentProvider द्वारा किया जाता है, ऐप्लिकेशन मेनिफेस्ट में घोषित: github.com/facebook/facebook-android-sdk/commit/...
सेबेस्तियन

2
यदि मैं sdkInitialize लाइन को हटाता हूं, तो कुछ उपयोगकर्ता अभी भी अपवाद को पूरा करते हैं: "फेसबुक sdk को सक्रिय करने से पहले आरंभीकृत किया जाना चाहिए", sdk संस्करण: 4.27.0, Android संस्करण 5.0
diousk

13
FacebookSdk.sdkInitialize(getApplicationContext()); 

इस विधि को हटा दिया गया है, इसलिए अपनी कक्षा में कोड की इस लाइन को हटा दें। क्योंकि नवीनतम फेसबुक के अनुसार अब हमें एसडीके को मैन्युअल रूप से इनिशियलाइज़ करने की आवश्यकता नहीं है, यह अपने आप इनिशियलाइज़ हो जाता है।


4

इसलिए पदावनत विधियों को कॉल करने के बजाय आप AppEventsLogger.activateApp(Application)अपने आवेदन कक्षा के ऑनक्रिएट () में कॉल कर सकते हैं

public class MyApplication extends Application{

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

1
के अनुसार इस public static void activateApp(Context context) मान्य नहीं है। यह उपयोग करने के लिए पता चलता है यह । उसके लिए मैंने MainActivity.thisसाथ दिया getApplication()
निखिल वाघ

2
MyApplication.thisभी वही Applicationवस्तु है। क्या मैं पूछ सकता हूं कि इसे बदलने की क्या जरूरत है getApplication()? मैं बस का उपयोग this(जो भी रूप में ही है MyApplication.this) और यह के रूप में प्राप्त हैApplication
विडा

1

मेरी आवश्यकता ऐप लॉन्च पर ऑटोइनिट को अक्षम करना और इसे गतिविधि के ऑनक्रिट विधि से प्रारंभ करना था। एप्लिकेशन लॉन्च से पहले AutoInit मेरे फ़्लटर ऐप को धीमा नेटवर्क कनेक्शन पर शुरू करने के लिए समय ले रहा था।

  1. प्रकट से AutoInit अक्षम करें

    <meta-data android:name="com.facebook.sdk.AutoInitEnabled"
        android:value="false"/>
  2. एक्टिविटी ऑनक्रिएट विधि में प्रारंभिक एफबी एसडीके

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

1

FacebookSdk.sdkInitialize(getApplicationContext());

इस विधि की कोई आवश्यकता नहीं है क्योंकि फेसबुक डॉक कहता है: यह फ़ंक्शन फेसबुक एसडीके को स्वचालित रूप से ऐप स्टार्ट अप के रूप में कहा जाता है यदि एंड्रॉइड मैनफेस्ट में उचित प्रविष्टियां सूचीबद्ध हैं, जैसे कि फेसबुक ऐप आईडी। 'सक्रियण' से स्वचालित ईवेंट लॉगिंग को 'com.facebook.sdk.AutoLogAppEventsEnabled' प्रकट सेटिंग के माध्यम से नियंत्रित किया जा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.