Facebook Sdk 尚未初始化 FacebookSdk.sdkInitialize()
Facebook Sdk Has Not Been Initialized FacebookSdk.sdkInitialize()
嘿,我知道之前有人问过这个问题,但是 none 的解决方案似乎有帮助。我是第一次在我的应用程序中使用 Facebook SDK。
我尝试过的:
我已经尝试了在 Internet 上找到的大部分内容,但没有得到任何相关信息。
这是我的 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.
你必须使用 FacebookSdk.sdkInitialize(getApplicationContext());
before setContentView(R.layout.activity_main);
as documentation states out. In case you need a complete facebook login example, .
像这样使用初始化回调构造函数:
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);
检查 documentation 后,我发现他们要求 在应用程序 class onCreate()
方法中初始化 FacebookSdk .
来自 Facebook 文档的快照代码:
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);
}
}
您不再需要使用 FacebookSdk.sdkInitialize。检查您是否:
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
在 <application>
标签内。
问题
在为一个 react-native 项目集成 Android SDK 时,我完成了 Android with React Native v0.30+ Project Configuration 指南和 运行 react-native run-android
然后得到了这个屏幕:
我了解到 FacebookSdk.sdkInitialize
已被弃用。 see here
经过一番搜索,我发现该指南没有包含为我的应用程序添加 Facebook 应用程序 ID 的步骤。
解决方案
打开 android/app/src/main/AndroidManifest.xml
文件并查看 <application>
标签以确认此 meta-data
标签存在:
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
打开 android/app/src/main/res/values/strings.xml
文件并确认其中有一个 "facebook_app_id" 字符串标记,其中您的应用程序 ID 作为值:
<string name="facebook_app_id">YOUR_APP_ID_HERE</string>
运行 react-native run-android
.
这些步骤对我有用。
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 重建项目 运行-android
只需执行 2 步,您的 Facebook Sdk 即可在 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>
不需要这个,因为它现在已弃用
FacebookSdk.sdkInitialize(getApplicationContext());
看到这个问题中列出的回复,初始化 Facebook 的旧方法是:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Initialize the SDK before executing any other operations,
FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(this);
}
}
但是我们可以得到消息:
Facebook Sdk Has Not Been Initialized FacebookSdk.sdkInitialize()
FacebookSdk.sdkInitialize()
现已弃用。
现在 (2021) Facebook 初始化已更改,the Facebook initialization is automatically。
1 将以下内容添加到 build.gradle(模块:app)文件的 dependencies {} 部分,为 Android 编译最新版本的 Facebook SDK:
implementation 'com.facebook.android:facebook-android-sdk:latest.release'
添加您的 Facebook 应用程序 ID 和客户端令牌
将您的 Facebook 应用程序 ID 和客户端令牌添加到项目的字符串文件并更新您的 Android 清单:
1 打开您的 /app/res/values/strings.xml
文件。
2 将名称属性 facebook_app_id 和值作为您的 Facebook 应用程序 ID 的字符串元素添加到文件中。例如
<string name="facebook_app_id">Facebook App ID</string>
<string name="facebook_client_token">Facebook Client ID</string>
3 打开/app/manifests/AndroidManifest.xml
4 向清单中添加一个 uses-permission 元素:
<uses-permission android:name="android.permission.INTERNET"/>
5 向应用程序元素添加元数据元素:
<application android:label="@string/app_name" ...>
...
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
...
</application>
如果这对任何人有帮助。对我来说,我必须做出这个改变
implementation 'com.facebook.android:facebook-login:latest.release' // for FB login
以上代码行必须添加到依赖项对象的末尾,而不是介于两者之间的任何位置。
这是在 android/app/build.gradle 文件
我的应用程序崩溃了,因为 隐私政策 url 未在“Settings/Basic”中提供https://developers.facebook.com/。 (实际上它已经提供了,但我不得不再次“保存更改”。似乎是来自 Facebook 的错误)。
应用程序运行正常,错误消息 Facebook Sdk Has Not Been Initialized FacebookSdk.sdkInitialize()
消失了。希望对您有所帮助。
对于 SDK v13.+,您必须添加 Apple ID 和 Client Token.
- 在你的应用项目中打开/app/res/values/strings.xml文件并添加:
<string name="facebook_app_id">1234</string>
<string name="facebook_client_token">56789</string>
- 在你的应用项目中打开/app/manifests/AndroidManifest.xml文件并添加:
<application android:label="@string/app_name" ...>
...
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
...
</application>
您可以在您的 FB Developer 帐户中找到您的客户令牌:
应用程序 > 仪表板 > 设置 > 高级 > 安全 > 客户端令牌。
嘿,我知道之前有人问过这个问题,但是 none 的解决方案似乎有帮助。我是第一次在我的应用程序中使用 Facebook SDK。
我尝试过的:
我已经尝试了在 Internet 上找到的大部分内容,但没有得到任何相关信息。
这是我的 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.
你必须使用 FacebookSdk.sdkInitialize(getApplicationContext());
before setContentView(R.layout.activity_main);
as documentation states out. In case you need a complete facebook login example,
像这样使用初始化回调构造函数:
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);
检查 documentation 后,我发现他们要求 在应用程序 class onCreate()
方法中初始化 FacebookSdk .
来自 Facebook 文档的快照代码:
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);
}
}
您不再需要使用 FacebookSdk.sdkInitialize。检查您是否:
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
在 <application>
标签内。
问题
在为一个 react-native 项目集成 Android SDK 时,我完成了 Android with React Native v0.30+ Project Configuration 指南和 运行 react-native run-android
然后得到了这个屏幕:
我了解到 FacebookSdk.sdkInitialize
已被弃用。 see here
经过一番搜索,我发现该指南没有包含为我的应用程序添加 Facebook 应用程序 ID 的步骤。
解决方案
打开
android/app/src/main/AndroidManifest.xml
文件并查看<application>
标签以确认此meta-data
标签存在:<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
打开
android/app/src/main/res/values/strings.xml
文件并确认其中有一个 "facebook_app_id" 字符串标记,其中您的应用程序 ID 作为值:<string name="facebook_app_id">YOUR_APP_ID_HERE</string>
运行
react-native run-android
.
这些步骤对我有用。
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 重建项目 运行-android
只需执行 2 步,您的 Facebook Sdk 即可在 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>
不需要这个,因为它现在已弃用
FacebookSdk.sdkInitialize(getApplicationContext());
看到这个问题中列出的回复,初始化 Facebook 的旧方法是:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Initialize the SDK before executing any other operations,
FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(this);
}
}
但是我们可以得到消息:
Facebook Sdk Has Not Been Initialized FacebookSdk.sdkInitialize()
FacebookSdk.sdkInitialize()
现已弃用。
现在 (2021) Facebook 初始化已更改,the Facebook initialization is automatically。
1 将以下内容添加到 build.gradle(模块:app)文件的 dependencies {} 部分,为 Android 编译最新版本的 Facebook SDK:
implementation 'com.facebook.android:facebook-android-sdk:latest.release'
添加您的 Facebook 应用程序 ID 和客户端令牌
将您的 Facebook 应用程序 ID 和客户端令牌添加到项目的字符串文件并更新您的 Android 清单:
1 打开您的 /app/res/values/strings.xml
文件。
2 将名称属性 facebook_app_id 和值作为您的 Facebook 应用程序 ID 的字符串元素添加到文件中。例如
<string name="facebook_app_id">Facebook App ID</string>
<string name="facebook_client_token">Facebook Client ID</string>
3 打开/app/manifests/AndroidManifest.xml
4 向清单中添加一个 uses-permission 元素:
<uses-permission android:name="android.permission.INTERNET"/>
5 向应用程序元素添加元数据元素:
<application android:label="@string/app_name" ...>
...
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
...
</application>
如果这对任何人有帮助。对我来说,我必须做出这个改变
implementation 'com.facebook.android:facebook-login:latest.release' // for FB login
以上代码行必须添加到依赖项对象的末尾,而不是介于两者之间的任何位置。 这是在 android/app/build.gradle 文件
我的应用程序崩溃了,因为 隐私政策 url 未在“Settings/Basic”中提供https://developers.facebook.com/。 (实际上它已经提供了,但我不得不再次“保存更改”。似乎是来自 Facebook 的错误)。
应用程序运行正常,错误消息 Facebook Sdk Has Not Been Initialized FacebookSdk.sdkInitialize()
消失了。希望对您有所帮助。
对于 SDK v13.+,您必须添加 Apple ID 和 Client Token.
- 在你的应用项目中打开/app/res/values/strings.xml文件并添加:
<string name="facebook_app_id">1234</string>
<string name="facebook_client_token">56789</string>
- 在你的应用项目中打开/app/manifests/AndroidManifest.xml文件并添加:
<application android:label="@string/app_name" ...>
...
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
...
</application>
您可以在您的 FB Developer 帐户中找到您的客户令牌:
应用程序 > 仪表板 > 设置 > 高级 > 安全 > 客户端令牌。