从Manifest中移除LoginActivity - 适用于Android 3.0的Facebook SDK

eme*_*ieu 17 android facebook

我注意到Facebook SDK 3.0必须在Manifest文件中具有LoginActivity声明.

<activity android:name="com.facebook.LoginActivity"
          android:label="@string/app_name" />
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/applicationId" />
Run Code Online (Sandbox Code Playgroud)

如果它不存在,则抛出以下异常.

com.facebook.FacebookException: Cannot use SessionLoginBehavior SSO_WITH_FALLBACK when com.facebook.LoginActivity is not declared as an activity in AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)

当Facebook SDK必须依赖此声明时,这似乎是一种不好的做法.我想知道是否有办法从Manifest文件中删除它.

关于缺少applicationId,我可以通过修改一些函数,LoginButton构造函数和Session构造函数来传递它.

Max*_*lle 6

使用官方构建堆栈时,您需要在清单中引用每个Activity(需要启动).这确实是违反直觉的,因为人们会期望从包含的库继承这些东西.

现在可以使用Maven构建堆栈和新的构建系统来实现称为"清单合并"的过程.由于新的构建系统仍在进行中,您只需要等到它正式推出即可.