FacebookSdk.sdkInitialize (Context)는 더 이상 사용되지 않습니다.


102

Android Studio에서 facebook-android-sdk-4.19.0을 사용하고 있으며 https://developers.facebook.com/docs/android/getting-started 에서 Facebook 빠른 시작 가이드를 따랐습니다 (빠른 시작 버튼을 클릭하여 자신의 페이스 북 계정으로 로그인). 가이드에서는 앱 로그를 추적하기 위해 스 니펫에 다음 코드를 복사하여 붙여 넣으라고합니다.

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

그러나 android studio에서 코드를 복사하여 붙여 넣으면 모든 FacebookSdk.sdkInitialize () 메서드가 더 이상 사용되지 않는 것으로 보입니다. https://developers.facebook.com/docs/reference/android/current/class/FacebookSdk/ 의 문서 는 sdkInitialize () 대신 sdk를 초기화하는 데 사용할 방법에 대해 아무것도 알려주지 않습니다. 어떤 방법을 사용해야합니까?


1
답변이 도움이 되었으면 정답으로 표시하거나 여전히 동일한 문제가 있으면 검색을 계속할 수 있습니다.
Yupi

답변:


132

SDK 업그레이드에 대한 문서에서 :

이제 Facebook SDK는 애플리케이션 시작시 자동으로 초기화됩니다. 메인 프로세스에서 Facebook SDK를 사용 중이고 SDK 초기화 완료시 콜백이 필요하지 않은 경우 이제 FacebookSDK.sdkInitialize에 대한 호출을 제거 할 수 있습니다. 콜백이 필요한 경우 코드에서 콜백을 수동으로 호출해야합니다.

: 참조 https://developers.facebook.com/docs/android/upgrading-4x

최신 정보

SDK 4.22에서 title, description, captionimage필드는 FBSDKShareLinkContent사용되지 않습니다. 사용에서 제거하는 것을 고려하십시오.


1
자동 초기화 콜백은 어떻습니까?
Konstantin Konopko

8
FB SDK는 "on Application start"무엇이든 추가 할 필요없이 어떻게 스스로 초기화 할 수 있습니까 Application.onCreate()??
Sébastien

5
내 자신의 의견을 응답 : v4.19.0 이후, 페이스 북 SDK 초기화가 응용 프로그램 매니페스트에 선언, 컨텐트 프로에 의해 수행됩니다 github.com/facebook/facebook-android-sdk/commit/...
세바스티앙

() sdkInitialize라는 곳 감사 세바스티앙, 나는 양식을 알아 내기 위해 많은 시간을 보내고
바헤 Gharibyan

2
sdkInitialize 줄을 제거해도 일부 사용자는 "activateApp을 호출하기 전에 Facebook sdk를 초기화해야합니다.", sdk 버전 : 4.27.0, Android 버전 5.0
diousk

13
FacebookSdk.sdkInitialize(getApplicationContext()); 

이 메서드는 더 이상 사용되지 않으므로 클래스에서이 코드 줄을 삭제하면됩니다. 최신 Facebook에 따르면 이제 SDK를 수동으로 초기화 할 필요가 없으므로 자체적으로 초기화됩니다.


4

따라서 더 이상 사용되지 않는 메서드를 호출하는 대신 AppEventsLogger.activateApp(Application)애플리케이션 클래스의 onCreate () 내부에서 호출 할 수 있습니다.

public class MyApplication extends Application{

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

1
에 따르면 public static void activateApp(Context context) 되지 않습니다. 이것을 사용하는 것이 좋습니다 . 내가 대체 것을 들어 MainActivity.thisgetApplication().
Nikhil Wagh

2
MyApplication.this또한 동일한 Application개체입니다. 교체 할 필요가 무엇인지 물어봐도 getApplication()될까요? 나는 단순히 this( MyApplication.this과 동일 함 ) 사용하고 다음과 같이 받았습니다.Application
vida

1

내 요구 사항은 앱 시작시 autoInit를 비활성화하고 Activity의 onCreate 메서드에서 초기화하는 것이 었습니다. 앱 시작 전에 AutoInit으로 인해 Flutter 앱이 느린 네트워크 연결에서 시작하는 데 시간이 걸립니다.

  1. 매니페스트에서 AutoInit 비활성화

    <meta-data android:name="com.facebook.sdk.AutoInitEnabled"
        android:value="false"/>
  2. 활동의 onCreate 메서드에서 Fb SDK 초기화

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

1

FacebookSdk.sdkInitialize(getApplicationContext());

Facebook 문서에 따르면이 메서드가 필요하지 않습니다.이 함수는 Facebook 앱 ID와 같은 AndroidManifest에 적절한 항목이 나열되는 경우 앱 시작시 Facebook SDK를 자동으로 호출합니다. 'activateApp'의 자동 이벤트 로깅은 'com.facebook.sdk.AutoLogAppEventsEnabled'매니페스트 설정을 통해 제어 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.