【发布时间】:2012-07-12 00:37:30
【问题描述】:
全部,
我正在尝试在我的应用程序中使用现有的开源项目(我们将其称为 A)作为库。项目 A 还带有自己的库项目 (B)。项目 A 编译并运行得很好;但是,当我尝试在我的应用程序中使用 A 时(我检查了 A 中的“Is Library”并将 A 添加到我的应用程序中)我收到几个错误“没有找到属性 'X'in 包中的资源标识符......”这些B 中存在特定属性。我什至检查了它们是否被添加到 A 中的 R 中,事实上,它们是。
我的问题:为什么我的应用看不到这些资源存在?
我找遍了,只有一种情况和我一样:
Android library not pulling its resources through to other projects
但我没有看到我的任何资源都被命名为相同的。
我正在使用带有 ADT v20.0 的 Eclipse
感谢您的帮助!
编辑:如果有帮助,我正在尝试使用的开源应用程序是 AnySoftKeyboard (ASK)。我也尝试过创建一个新项目并将 ASK 添加为库——没有骰子。
EDIT2:使 ASK 成为库的一部分需要将几个 switch 语句转换为 if-else 语句,因为 R Id 未声明为库的最终版本。
【问题讨论】:
-
你试过清理所有三个项目吗?
-
@yorkw 对不起,我应该提到这一点。我曾多次尝试清理、重新启动、“取消库”和“重新库”。我还尝试刷新并使用构建路径。我想我也尝试过其他类似的小事情,但目前我能想到的就是这些。谢谢!
-
查看 r17 版本 here 中红色的重要更改。
-
@yorkw 抱歉,但我仍然没有看到我需要做什么。该页面指出:“这意味着库项目无法从他们依赖的另一个库项目中导入 R 类。无论如何这都不是必需的,因为它们自己的 R 类包含所有必要的资源。”基于此,我认为它会起作用(并且适用于 A 对 B 的依赖)。但是,我确实在下面看到:“仅当引用设置为在引用项目中导出时才会发生这种情况”,这表明我需要导出“引用”。我很困惑,因为我不需要从项目 B 中这样做!
标签: android eclipse adt library-project