【问题标题】:In eclipse, unable to reference an android library project in another android project在eclipse中,无法在另一个android项目中引用一个android库项目
【发布时间】:2011-07-07 05:45:00
【问题描述】:

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

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

  1. 通过项目属性标记库项目。 default.properties 文件有这个集合:android.library=true

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

  3. 引用库项目的绿色勾号以绿色开始,然后变为红色叉号。

这意味着库项目中一定有一些错误/缺失,但我不知道是什么。这次我的图书馆项目比我之前创建的要简单得多。

【问题讨论】:

标签: android eclipse project


【解决方案1】:

好的,这是我在文件系统中查找引用项目(而不是库)的 default.properies 文件时找到的解决方案。尽管引用项目与库项目位于同一 Eclipse 工作区中,但实际文件位于文件系统中的其他位置,即它们不在库项目的同一父文件夹中。一旦我将引用项目与库项目放在同一个物理文件夹中,一切都很好。

我想这一定与android在封面下使用蚂蚁有关。

编辑:项目名称需要与文件系统上的文件夹名称匹配。您在 Project Properties->Android->Library Reference 中看到的是相对文件系统路径。

【讨论】:

  • 还想补充一点,符号链接不适合这个。我将所有项目都存储在同一个文件夹中,彼此位于不同的位置(我将要备份的东西放在那里),然后我的工作区文件夹中的一堆符号链接指向这些文件夹。所以他们在两个地方都都在同一个文件夹中,但是符号链接的使用把这一切搞砸了。一旦我将真实文件夹加载为我的基本工作区,一切都很好。
  • +1 用于阐明 Eclipse/ADT 组合的这种可怕行为。仅供参考,即使将两个项目放在同一个物理文件夹中也无济于事如果该文件夹恰好位于 Samba 共享上。呜呜呜……
  • 有时 Eclipse 会删除引用,重新启动 eclipse 并再次添加,现在它应该可以工作了。
  • 这是我的项目属于并位于同一工作区的问题。将项目导入与库相同的工作区,一切正常。感谢您的回答。
  • 检查您的工作区和库是否位于同一文件夹位置。犯了重新下载 ADT 的错误,并在 C:\users 工作区下创建了一个项目,而不是我的实际工作区。不用说,再次检查您的项目和您的库是否在同一个工作目录中!
【解决方案2】:

确保这两个项目都存在于同一个工作空间中。 为此,在导入项目时确保选中“将项目复制到工作空间”复选框。

【讨论】:

  • 如何将同一个库项目用于另一个项目。如果我这样做,它会显示红色十字符号.. @Karthik
【解决方案3】:

如果您的库项目与当前工作空间位于不同的分区中,也会出现同样的问题。我刚才也有同样的问题。我的 git 源位于 C: 中,我只是将工作区移动到 D: 并且一切都开始崩溃。

【讨论】:

  • 如果主项目和库项目在不同的驱动器上,Eclipse似乎无法将Reference路径从绝对解析为相对,Eclipse对此不满意(绿勾变成红叉)。
  • 也为我工作。我在同一个驱动器(H:) 中替换了引用的项目,现在可以了
【解决方案4】:

获取正确的库路径路径的最简单方法是使用 Eclipse 的 GUI 添加库,如下面的屏幕截图所示,并让 Eclipse 负责将正确的相对路径放入 project.properties。将您的库项目托管在与使用该库的主要项目大不相同的目录中是一种常见设置。如果“库项目”和使用它的项目在同一个 Eclipse“工作区”中(它们“不需要”在同一个父文件夹中),则此方法将起作用:

【讨论】:

  • 问题是因为库和项目位于不同的驱动器/分区上...请参阅上面的错误列表。你的很好,因为你的库路径显示的是相对路径而不是 DOS 完整路径...
【解决方案5】:

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

【讨论】:

  • 这对我来说效果很好。令人困惑的部分是我认为这个“是图书馆”复选框的位置。这实际上是选择当前应用程序/库构建的目标而不是要包含的库的选项开关,这并不直观。
【解决方案6】:

这里多次引用此错误27199、35786、36460 & 38052

也许通过投票给他们,总有一天会解决的......

【讨论】:

    【解决方案7】:

    对同一问题的另一个观察。

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

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

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

    【讨论】:

    • +1。切换具有相同名称的库时遇到此问题。看起来像eclipse(或ADT)试图引用旧的并且失败了。 Eclipse 重启有帮助。 (Ubuntu 12.04、Eclipse Indigo、ADT 21.0.0)
    【解决方案8】:

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

    【讨论】:

      【解决方案9】:

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

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

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

      【讨论】:

        【解决方案10】:

        我的解决方法是

        1. 创建新工作区
        2. 在该工作区中导入库项目
        3. 在该工作区中导入所需的项目
        4. 项目和库项目的目标 Android 操作系统版本相同
        5. 我的项目中的参考库项目

        解决了我的问题

        【讨论】:

        • 创建一个新的工作空间也解决了这个问题。您还需要清除项目。
        【解决方案11】:

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

        1. 将包括库项目在内的所有项目数据导入并复制到工作区中
        2. 通过右键单击项目-->属性-->Android-->库来删除旧项目引用,然后选择损坏的库(这样我就叫它)并选择删除
        3. 先清理项目(刷新你的项目属性)
        4. 转到库项目 Properties-->Android-->Library 并检查 is library 如果它没有单击 Apply 然后确定
        5. 如果库项目是库已经被选中,首先取消选中它然后清理库项目,然后再次执行第 4 步
        6. 转到你想要库所在的项目然后右键单击项目-->属性-->Android-->库,添加然后选择库项目(它应该在那里)并单击应用然后确定
        7. 如果仍然没有再次清理项目,那么应该这样做

        【讨论】:

          【解决方案12】:

          只需重新启动您的 Eclipse。解决了我的问题

          【讨论】:

            【解决方案13】:

            当您查看前后的参考路径时,它来自即“C:/workspace/mylib”并在复制到正确位置时转到“../../mylib”,非常有趣.

            【讨论】:

              【解决方案14】:

              仅供参考,

              对我有用的是从我的工作区中删除“库”项目(实际项目)(不删除文件),然后使用向导重新导入它们(从源代码导入现有的 android 项目)。

              【讨论】:

              • 也为我工作。刚刚删除并重新导入项目(作为“现有 Eclipse 项目”)
              【解决方案15】:

              感谢您发布问题。 在将 Facebook 与我的 Android 应用程序集成时,我遇到了完全相同的问题。我通过将我的开发项目移动到库项目所在的同一个 Windows 驱动器解决了这个问题。如果 default.properties 文件位于不同的驱动器中,Eclipse 无法以某种方式正确读取库项目的位置。

              【讨论】:

                【解决方案16】:

                与 Sufi Khan 的帖子类似,我也通过重启解决了这个问题。我的情况不同,当我第一次访问 Properties->Android 并添加库时,我得到了一个可爱的绿色复选标记。当我关闭对话框时,Eclipse 仍然显示 class-not-found 类型错误。当我再次检查属性时,我看到了红色的 X。但是卡恩先生的解决方案(删除坏库,重新启动 Eclipse,再次添加库)工作正常。

                我使用的是 0702 版本的 ADT 捆绑包(以“cluster”开头,押韵为“duck”)。

                【讨论】:

                  【解决方案17】:

                  我遵循了公认的答案,但还必须确保我的“project.properties”文件是可读的。

                  如果文件是只读的(签入源代码管理),eclipse 将不会编辑它。添加库引用会成功,但点击 OK 后更改不会保留。

                  如果关闭首选项窗口并再次重新打开会删除您刚刚添加的库,这可能是您的解决方案。

                  【讨论】:

                    【解决方案18】:

                    如果您的库项目仍未显示,请尝试在库项目属性中添加库标志

                    添加 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
                    

                    【讨论】:

                      猜你喜欢
                      • 2012-09-14
                      • 2023-04-09
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2011-09-03
                      • 2013-05-07
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多