【发布时间】:2013-10-17 16:47:49
【问题描述】:
我正在尝试将 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
【问题讨论】:
-
你尝试清理项目了吗?
-
@MrSuS 是的,我已经彻底清理了项目。然后我从 Facebook 示例中复制了 R.java,最后我重建了重新生成 R.java 的应用程序。它仍然会生成相同的 Id 并发生冲突。
标签: java android facebook facebook-login r.java-file