当我写这个问题时,我设法解决了这个问题,所以在这里重复一遍,为了别人的利益。这是最初的问题:
我创建了一个非常简单的库项目,我想在另一个项目中引用它。我之前没有遇到任何问题,所以不确定为什么这次不工作。我有:
通过项目属性标记库项目。 default.properties
文件具有以下设置:android.library=true
在我的其他项目中,通过项目属性添加了对我的库项目的引用。 default.properties
文件按预期添加了引用,即android.library.reference.1=K:/android_test_ws/applicationRegistrar
引用的图书馆项目的绿色标记以绿色开始,然后变为红叉。
这意味着图书馆项目肯定存在错误/缺失,但我不知道是什么。我这个场合的图书馆项目比我之前创建的图书馆项目简单得多。
答案 0 :(得分:159)
OK这是我在文件系统中查找引用项目(而不是库)的default.properies文件时找到的解决方案。虽然引用项目与库项目位于同一个eclipse工作区中,但实际文件位于文件系统的其他位置,即它们不在库项目的同一父文件夹中。一旦我将引用项目放在与库项目相同的物理文件夹中,一切都很顺利。
我想这一定与使用安卓底层的安卓有关。
编辑:项目名称需要与文件系统上的文件夹名称匹配。您在Project Properties-> Android-> Library Reference中看到的是相对文件系统路径。
答案 1 :(得分:11)
确保项目都存在于同一工作空间中。 为此,在导入项目时确保选中“将项目复制到工作区”复选框。
答案 2 :(得分:10)
如果您的库项目与当前工作区位于不同的分区,则会出现同样的问题。我刚才有同样的问题。我的git源代码是C:我只是将我的工作区移动到D:并且一切都开始崩溃了。
答案 3 :(得分:4)
使库路径路径正确的最简单方法是使用Eclipse中的GUI添加库,如下面的屏幕截图所示,让Eclipse负责在project.properties中放置正确的相对路径。它是一个常见的设置,使您的库项目托管在与使用该库的主项目完全不同的目录中。如果“libary项目”和使用它的项目位于同一个eclipse“工作区”(它们“不需要”在同一个父文件夹中),则此方法将起作用:
答案 4 :(得分:3)
请确保库项目标记为“Is Library” - 右键单击库项目 - 属性 - Android - 标记“Is Library”复选框 - 在库项目的project.properties中,您应该有一个新条目:“android.library = true。现在将其添加到您想要的项目中,如下面的帖子所述。(图片集成的帖子 - 来自Nilesh Pawar)。
答案 5 :(得分:3)
答案 6 :(得分:2)
关于同一问题的另一个观察结果。
对我来说,这两个项目位于同一个父文件夹中,并且都在工作区内。即使这样,问题仍然存在。
我编辑了“project.properties”文件,并为库项目设置了绝对路径(带分隔符的正斜杠'/')。保存并关闭它。然后转到项目属性对话框,删除了库(它仍然显示十字图标但是带有abs路径)并像往常一样将其添加回来。 令人惊讶的是,问题得到解决,项目编译并运行。
这真的很奇怪,必定是ADT的一个错误。 我使用的是ADT版本20.0.2
答案 7 :(得分:2)
当开发人员引用facebook或任何其他库项目时,首先从eclipse-> project-> clean项目清理项目。 希望在引用屏幕中允许红十字错误。
答案 8 :(得分:2)
对我来说,我只是重新启动eclipse,添加的库工作正常。
我的意思是在添加库项目后第一次显示红色标记。 虽然eclipse主项目和库项目在同一个工作区文件夹中,并且项目文件夹外没有资源文件。
所以,你可以尝试重启你的日食。快乐的编码....
答案 9 :(得分:1)
我的解决方法是
解决了我的问题
答案 10 :(得分:1)
重启你的日蚀。它解决了我的问题
答案 11 :(得分:1)
当我尝试更改我的工作空间时,我遇到了同样的问题,这是我的解决方案:
答案 12 :(得分:0)
感谢您发布问题。 在将Facebook与我的Android应用程序集成时,我遇到了完全相同的问题。我通过将我的开发项目移动到库项目所在的同一Windows驱动器来解决该问题。不知何故,Eclipse无法从 default.properties 文件中正确读取库项目的位置(如果它位于不同的驱动器中)。
答案 13 :(得分:0)
与Sufi Khan的帖子类似,我也通过重启解决了这个问题。我的情况不同,当我第一次访问Properties-> Android并添加了库时,我得到了一个可爱的绿色复选标记。当我关闭对话框时,Eclipse仍然显示class-not-found类型错误。当我再次检查属性时,我看到了红色X.但Kahn先生的解决方案(删除坏lib,重新启动Eclipse,再次添加lib)工作正常。
我使用的是ADT套装的0702版本(以“群集”开头,与“鸭子”押韵)。
答案 14 :(得分:0)
我按照接受的答案,但也必须确保我的“project.properties”文件是可读的。
如果文件是只读的(检查到源代码控制中),eclipse将不会编辑它。添加库引用将成功,但在单击“确定”后不会保留更改。
如果关闭首选项窗口并重新打开,则会删除刚添加的库,这可能是您的解决方案。
答案 15 :(得分:0)
如果您的图书馆项目仍然没有显示,请尝试在图书馆项目属性中添加库标记
添加 android.library = true
project.properties
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-17
android.library=true
答案 16 :(得分:0)
FYI,
对我有用的是从我的工作区删除'库'项目(实际项目)(不删除文件),然后使用向导重新导入它们(从源代码导入现有的android项目)。 / p>
答案 17 :(得分:0)
当你看到之前和之后的参考路径时,它来自ie“C:/ workspace / mylib”并且在复制到正确位置时转到“../../mylib”,非常有趣