FacebookSdk.sdkInitialize (Context) không được dùng nữa


101

Tôi đang sử dụng facebook-android-sdk-4.19.0 trong Android Studio và tôi đã làm theo hướng dẫn bắt đầu nhanh của Facebook tại https://developers.facebook.com/docs/android/getting-started (Nhấp vào nút Bắt đầu nhanh để đăng nhập bằng tài khoản facebook của riêng bạn). Trong hướng dẫn, nó được yêu cầu sao chép và dán đoạn mã sau vào đoạn mã để theo dõi nhật ký ứng dụng

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

Tuy nhiên, khi tôi sao chép, dán mã trong android studio, có vẻ như tất cả các phương thức FacebookSdk.sdkInitialize () không được dùng nữa. Tài liệu ở đây https://developers.facebook.com/docs/reference/android/current/class/FacebookSdk/ không cho biết gì về phương pháp sử dụng để khởi tạo sdk thay vì sdkInitialize (). Tôi nên sử dụng phương pháp nào?


1
Nếu câu trả lời hữu ích, bạn vui lòng đánh dấu là câu trả lời đúng hoặc nếu bạn vẫn gặp vấn đề tương tự, chúng tôi có thể tiếp tục tìm kiếm.
Yupi

Câu trả lời:


131

Từ tài liệu về nâng cấp SDK:

SDK Facebook hiện được tự động khởi chạy khi khởi động Ứng dụng. Nếu bạn đang sử dụng Facebook SDK trong quy trình chính và không cần gọi lại khi hoàn thành khởi tạo SDK, giờ đây, bạn có thể xóa các lệnh gọi tới FacebookSDK.sdkInitialize. Nếu bạn cần gọi lại, bạn nên gọi lại theo cách thủ công trong mã của mình.

Tham khảo tại: https://developers.facebook.com/docs/android/upgrading-4x

CẬP NHẬT

Trong SDK 4.22 các title, description, captionimagelĩnh vực FBSDKShareLinkContentđang bị phản đối. Cân nhắc loại bỏ chúng khỏi việc sử dụng.


2
Hiểu rồi, cảm ơn.
Ozan

1
Điều gì về gọi lại của tự động khởi tạo?
Konstantin Konopko

8
Làm thế nào để FB SDK quản lý để tự khởi tạo "on Application start"mà không cần thêm bất cứ thứ gì vào Application.onCreate()??
Sébastien

5
Trả lời ý kiến của riêng tôi: kể từ v4.19.0, khởi Facebook SDK được thực hiện bởi một ContentProvider, khai báo trong manifest ứng dụng: github.com/facebook/facebook-android-sdk/commit/...
Sébastien

2
Nếu tôi loại bỏ các dòng sdkInitialize, một số người dùng vẫn đáp ứng được các ngoại lệ: "The Facebook sdk phải được khởi tạo trước khi gọi activateApp", phiên bản sdk: 4.27.0, phiên bản Android 5.0
diousk

13
FacebookSdk.sdkInitialize(getApplicationContext()); 

Phương pháp này không được dùng nữa, vì vậy chỉ cần xóa dòng mã này trong lớp của bạn. bởi vì theo Facebook mới nhất, bây giờ chúng ta không cần phải khởi tạo SDK theo cách thủ công, nó sẽ tự khởi tạo.


4

Vì vậy, thay vì gọi các phương thức không dùng nữa, bạn có thể gọi AppEventsLogger.activateApp(Application)bên trong onCreate () của lớp ứng dụng của bạn

public class MyApplication extends Application{

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

1
Theo điều này public static void activateApp(Context context) là không được chấp nhận. Nó gợi ý để sử dụng cái này . Đối với điều đó tôi đã thay thế MainActivity.thisbằng getApplication().
Nikhil Wagh

2
MyApplication.thiscũng là Applicationđối tượng tương tự . Tôi có thể hỏi cần thay thế nó bằng getApplication()gì không? Tôi chỉ đơn giản là sử dụng this(cũng giống như MyApplication.this) và nó nhận được làApplication
vida

1

Yêu cầu của tôi là tắt autoInit khi khởi chạy ứng dụng và khởi chạy nó từ phương thức onCreate của Activity. AutoInit trước khi khởi chạy ứng dụng khiến ứng dụng chập chờn của tôi mất thời gian để khởi động trên các kết nối mạng chậm.

  1. Tắt AutoInit khỏi tệp kê khai

    <meta-data android:name="com.facebook.sdk.AutoInitEnabled"
        android:value="false"/>
  2. Khởi tạo Fb sdk trong phương thức onCreate của hoạt động

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

0

FacebookSdk.sdkInitialize(getApplicationContext());

Không cần phương pháp này như tài liệu Facebook nói: Chức năng này khởi tạo SDK Facebook được gọi tự động khi khởi động ứng dụng nếu các mục nhập phù hợp được liệt kê trong AndroidManifest, chẳng hạn như id ứng dụng facebook. Ghi nhật ký sự kiện tự động từ 'enableApp' có thể được kiểm soát thông qua cài đặt tệp kê khai 'com.facebook.sdk.AutoLogAppEventsEnabled'.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.