嘿,我知道以前曾经问过,但是没有一个解决方案似乎有所帮助。我在我的应用程序中使用了第一次使用Facebook SDK。
我尝试过的事情:
我曾尝试过互联网上发现的大部分内容,但没有得到任何相关内容。
这是我的MainActivity.java:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FacebookSdk.sdkInitialize(getApplicationContext());
}
}
这是我的Activitymain.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:facebook="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.facebook.login.widget.LoginButton
android:id="@+id/connectWithFbButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center_horizontal"
android:text=" connect_with_facebook" />
</LinearLayout>
查看我的 Logcat :
05-13 16:30:39.332: E/AndroidRuntime(10264): Caused by: The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first.
答案 0 :(得分:47)
您必须先使用FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_main);
作为documentation状态。如果您需要完整的Facebook登录示例check this one here。
答案 1 :(得分:17)
答案 2 :(得分:10)
您不再需要使用FacebookSdk.sdkInitialize。检查你的:
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
位于<application>
标记内。
答案 3 :(得分:3)
检查documentation后,我发现他们要求在应用程序类onCreate()
方法中初始化 FacebookSdk 。
从Facebook doc抓取代码:
public class MyApplication extends Application {
// Updated your class body:
@Override
public void onCreate() {
super.onCreate();
// Initialize the SDK before executing any other operations,
FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(this);
}
}
答案 4 :(得分:1)
不赞成使用sdkInitialize()
是有原因的。
转到android文件夹中的清单文件并添加以下内容
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
之后,在您的strings.xml
文件(res / values / strings.xml)中附加字符串条目:
<string name="facebook_app_id">APP_ID</string>
关闭您的Metro Builder并使用react-native run-android重建项目
答案 5 :(得分:0)
使用Initialise Callback Constructor,如下所示:
Handler mHandler = new Handler();
FacebookSdk.InitializeCallback initializeCallback = new FacebookSdk.InitializeCallback() {
@Override
public void onInitialized() {
mHandler.post(new Runnable() {
@Override
public void run() {
//UI Code Here
}
});
}
};
//before setContentView()
FacebookSdk.sdkInitialize(getActivity().getApplicationContext(),initializeCallback);
答案 6 :(得分:0)
仅遵循2步,您的Facebook Sdk iw将在React Native中工作
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
<string name="facebook_app_id">YOUR_APP_ID_HERE</string>
不需要此b'coz,现在不推荐使用
FacebookSdk.sdkInitialize(getApplicationContext());
答案 7 :(得分:0)
对于遇到此问题的Flutter Devs。
确保已按照facebook documentation中的步骤1-6进行操作。
在MainActivity文件中添加FacebookSdk.sdkInitialize()无法解决该问题。