1

我正在尝试将 Facebook SDK 集成到已完成并正在运行的应用程序中。

Facebook 登录活动嵌入在 Facebook SDK 中,需要示例中提供的生成的 R.java。

问题是我的应用程序 R.java 和 Facebook R.java 之间存在冲突,并且出现了来自我的应用程序的图像,而不是 facebook 窗口的关闭按钮:

在 com.facebook.android/R.java

    public static final int com_facebook_close = 0x7f02000a;

在我的应用程序/R.java

    public static final int hm2x=0x7f02000a;

如您所见,这两个文件的 id 相同,而 facebook 登录窗口 id 使用了错误的 id。

我试图在登录活动中导入 com.facebook.android.R 但它不起作用,因为 facebook 登录窗口位于 facebook sdk 上。

有任何想法吗?

谢谢

编辑

我终于找到了!!!我花了很多测试才意识到。

在项目属性中,SDK 被引用为

android.library.reference.1=../../facebook

这是 Eclipse 工作区上的一个项目,但不是存储 SDK 的真实目录。

事实上,facebook 开发者指南说:

您必须取消选择“将项目复制到工作区”选项,以便每个示例项目都保留对相邻 SDK 的正确引用。但是,这意味着 Eclipse 会在 SDK 安装中创建一个指向该项目的链接,而不是对其进行复制。

(如果您希望将来就地更新 SDK 并相应地更新您的工作区的库项目,这很有用。但是,如果您选择将来编辑 SDK 示例,您可能希望随后重新导入它们复制一份,以免影响原版。)

现在,这不起作用,因为重定向似乎产生了一些问题,并且应用程序没有找到它应该找到的所有 sdk 组件。

当我在 project.properties 中手动硬编码指向真实 SKD 的链接时,一切都开始工作了:

android.library.reference.1=../../facebook-android-sdk-3.5.2/facebook

4

1 回答 1

0

您应该清理并重建您的项目。这样就可以创建新的 R.java 而不会出现 ID 号冲突。

于 2013-10-17T17:19:45.820 回答