我注意到Facebook SDK3.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" />
如果它不在那里,则抛出下面的异常。
com.facebook.FacebookException: Cannot use SessionLoginBehavior SSO_WITH_FALLBACK when com.facebook.LoginActivity is not declared as an activity in AndroidManifest.xml
当Facebook SDK必须依赖于此声明时,这似乎是一种糟糕的做法。我想知道是否有从Manifest文件中删除它的方法。
关于丢失的applicationId,我可以通过修改一些函数、LoginButton构造函数和会话构造函数在代码中传递它。
发布于 2013-05-09 17:04:45
当使用官方构建堆栈时,您需要引用清单中的每个活动(需要启动)。这确实是违反直觉的,因为人们会期望从包含的库中继承这些东西。
现在,使用Maven构建堆栈和new build system可以实现一个称为“清单合并”的过程。由于新的构建系统仍在开发中,您只需等待它正式推出即可。
发布于 2014-08-20 00:55:13
如错误所示,将如下声明放入清单中:
<activity android:name="com.facebook.LoginActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:label="@string/app_name" />
https://stackoverflow.com/questions/13559936
复制相似问题