카테고리 보관물: 안드로이드

안드로이드

FacebookSdk.sdkInitialize (Context)는 더 이상 사용되지 않습니다. 로그를 추적하기

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를 초기화하는 데 사용할 방법에 대해 아무것도 알려주지 않습니다. 어떤 방법을 사용해야합니까?



답변

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

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

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

최신 정보

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


답변

FacebookSdk.sdkInitialize(getApplicationContext()); 

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


답변

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

public class MyApplication extends Application{

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

답변

내 요구 사항은 앱 시작시 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);

답변

FacebookSdk.sdkInitialize(getApplicationContext());

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


답변