【发布时间】:2012-01-26 23:19:01
【问题描述】:
库项目看起来不错,但是一旦我将它导入到我的主项目中,它就会在引用资源的每一行上显示错误:
id 无法解析或不是字段
主项目没有显示错误。
当然,我问自己,android 知道从哪里导入资源,例如从哪里导入资源。在这样的行中:
RelativeLayout menuLayout = (RelativeLayout) this.findViewById(R.id.menu_layout);
但这两个都不起作用:
RelativeLayout menuLayout = (RelativeLayout) this.findViewById(net.bla.library.R.id.menu_layout);
有什么想法吗?
编辑:我发现的是:
只要我包含库项目,Eclipse 就会将库中的 gen/net.mylibrary.R 复制到主应用程序中(因此现在 gen 文件夹中有 2 个包:来自应用程序的包和复制的包一个来自图书馆)。奇怪的是:副本中没有找到R.id。还有一些其他的区别,比如副本使用了一个额外的“final”来定义它。
我真的不知道为什么会发生这种情况。有人吗?
【问题讨论】:
-
@SteveC as net.bla.library.R 至少当我将鼠标悬停在“R”上时,日食就是这样说的。哦,刚刚发现:不知何故,eclipse也在主项目“gen”目录中创建了一个“library”目录,所以库“R”被主应用程序“R”否决了。噗,难以形容。不幸的是,当我尝试删除“库”目录时,eclipse 立即重新生成它:/
-
jar文件是否添加在Java/Build Path/User Libraries中?
-
@SteveC 是的,将库项目添加到构建路径。这并没有改变任何东西。对库的所有依赖项都起作用,只是资源的东西不起作用。我截图了。注意主项目中的两个(!)“gen”路径:postimage.org/image/oxmt18hi9
-
忽略我。我不熟悉 Android,所以不知道 R 是一个标准库。
标签: android dependencies