在eclipse中,无法在另一个android项目中引用android库项目

时间:2011-03-02 12:13:05

标签: android eclipse project

当我写这个问题时,我设法解决了这个问题,所以在这里重复一遍,为了别人的利益。这是最初的问题:

我创建了一个非常简单的库项目,我想在另一个项目中引用它。我之前没有遇到任何问题,所以不确定为什么这次不工作。我有:

  1. 通过项目属性标记库项目。 default.properties文件具有以下设置:android.library=true

  2. 在我的其他项目中,通过项目属性添加了对我的库项目的引用。 default.properties文件按预期添加了引用,即android.library.reference.1=K:/android_test_ws/applicationRegistrar

  3. 引用的图书馆项目的绿色标记以绿色开始,然后变为红叉。

  4. 这意味着图书馆项目肯定存在错误/缺失,但我不知道是什么。我这个场合的图书馆项目比我之前创建的图书馆项目简单得多。

18 个答案:

答案 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“工作区”(它们“不需要”在同一个父文件夹中),则此方法将起作用: enter image description here

答案 4 :(得分:3)

请确保库项目标记为“Is Library” - 右键单击​​库项目 - 属性 - Android - 标记“Is Library”复选框 - 在库项目的project.properties中,您应该有一个新条目:“android.library = true。现在将其添加到您想要的项目中,如下面的帖子所述。(图片集成的帖子 - 来自Nilesh Pawar)。

答案 5 :(得分:3)

此错误在271993578636460& 38052

也许通过投票给他们,有一天它会被修复......

答案 6 :(得分:2)

关于同一问题的另一个观察结果。

对我来说,这两个项目位于同一个父文件夹中,并且都在工作区内。即使这样,问题仍然存在。

我编辑了“project.properties”文件,并为库项目设置了绝对路径(带分隔符的正斜杠'/')。保存并关闭它。然后转到项目属性对话框,删除了库(它仍然显示十字图标但是带有abs路径)并像往常一样将其添加回来。 令人惊讶的是,问题得到解决,项目编译并运行。

这真的很奇怪,必定是ADT的一个错误。 我使用的是ADT版本20.0.2

答案 7 :(得分:2)

当开发人员引用facebook或任何其他库项目时,首先从eclipse-> project-> clean项目清理项目。 希望在引用屏幕中允许红十字错误。

答案 8 :(得分:2)

对我来说,我只是重新启动eclipse,添加的库工作正常。

我的意思是在添加库项目后第一次显示红色标记。 虽然eclipse主项目和库项目在同一个工作区文件夹中,并且项目文件夹外没有资源文件。

所以,你可以尝试重启你的日食。快乐的编码....

答案 9 :(得分:1)

我的解决方法是

  1. 创建新工作区
  2. 在该工作区中导入库项目
  3. 导入该工作区中的所需项目
  4. 项目和库项目都是相同的目标Android操作系统版本
  5. 我项目中的参考图书馆项目
  6. 解决了我的问题

答案 10 :(得分:1)

重启你的日蚀。它解决了我的问题

答案 11 :(得分:1)

当我尝试更改我的工作空间时,我遇到了同样的问题,这是我的解决方案:

  1. 将包括库项目的所有项目数据导入并复制到工作区
  2. 通过右键单击项目删除旧项目引用 - >属性 - > Android - >库,然后选择已损坏的库(以便我调用它)并选择删除
  3. 首先清理项目(刷新项目属性)
  4. 转到库项目属性 - > Android - >库并检查is库是否包含单击应用然后确定
  5. 如果已经检查了库项目库,则首先取消选中它然后再清理库项目再执行步骤4
  6. 转到您希望库所在的项目然后右键单击项目 - >属性 - > Android - >库,添加然后选择库项目(它应该在那里)并单击然后单击确定
  7. 如果仍然没有再次显示该项目,那应该

答案 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”,非常有趣