我一直在按照以下教程将我的应用程序与Facebook集成: Facebook教程
我已经按照教程上的所有步骤操作,但在两种情况下都遇到了applicationId cannot be null
错误,这真的很令人沮丧。
我的FacebookActivity
的onCreate
代码如下,与教程中完全相同:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
uiHelper = new UiLifecycleHelper(this, callback);
uiHelper.onCreate(savedInstanceState);
setContentView(R.layout.main_fb);
FragmentManager fm = getSupportFragmentManager();
fragments[SPLASH] = fm.findFragmentById(R.id.splashFragment);
fragments[SELECTION] = fm.findFragmentById(R.id.selectionFragment);
FragmentTransaction transaction = fm.beginTransaction();
for(int i = 0; i < fragments.length; i++)
{
transaction.hide(fragments[i]);
}
transaction.commit();
}
然而,当我尝试显示该活动时,我收到了 applicationId cannot be null
的错误提示,并且LogCat指向的行是:uiHelper.onCreate(savedInstanceState);
然后我尝试注释掉那行代码,这样就可以显示该活动。然而,现在当我点击LoginButton
时,我得到相同的错误,但这次它指向了Facebook的LoginButton
类中的applicationId
字段。
我已经在我的字符串值和清单中有这个ID:
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/APP_ID"/>
我尝试使用代码获取Id,但是没有改变任何东西。
到底是什么导致了这一切?
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="\ XXXXXXXXXXXXXXXXX"/>
(注意转义字符和ID字符串之间的空格)。 - Mark BeatonapplicatiodId
为null
,则您可以在初始化 sdk 后手动设置applicationId
。FacebookSdk.sdkInitialize(getApplicationContext()); FacebookSdk.setApplicationId(getResources().getString(R.string.app_id)); mFacebookCallbackManager = CallbackManager.Factory.create();
- anj