1

我正在使用afreechartedu.emory.mathcs.jtransforms并且org.afree.chart在我为 Android 编写的许多不同活动中。我在配置每个新项目时遇到了很大的麻烦,以便我可以

  1. 当我在 Eclipse IDE 中编写代码时,“查看”库中的类。
  2. 请参阅这些类的附加源
  3. 有关这些类,请参阅附加的 javadoc
  4. 当我尝试运行我的活动时,请参阅这些类的 .class 文件。

我现在要做的是为我使用的每个库制作一份 .jar、doc src 和 .properties 的副本。我将这四件事复制到我正在创建的每个项目(每个活动一个)的本地 lib 文件夹中。

我一定错过了一些简单的东西。很明显,我应该将这些库及其 doc、src 和 .properties 放在一个位置,并且我应该能够在使用这些库的每个项目中引用该位置。但我还没有弄清楚如何做到这一点。请告诉我怎么做。

如果有一种方法可以定义一组 jars 和相关的 src & doc,我所做的任何新的 eclipse 项目都会自动并始终搜索它们,那就更好了。

编辑添加关于外部库的答案后:

所以我确实把 jtransforms-2.4.jar 放在了一个外部目录中。在同一个目录中,我放置了包的 src 和 doc,以及一个带有 doc 和 src 条目的文件 jtransforms-2.4.properties,它们指向带有 doc 和 src 的本地文件。我将它们作为外部 jar 添加到我的构建路径中。

1) Eclipse IDE 确实在 .jar 中找到了这些类,并且没有将任何内容标记为丢失。2) 文档和 src 显示为未附加。 如何将 doc 和 src 信息与库一起放置,以便它们自动显示我将 jar 链接为外部 jar 的每个位置? 3)当我尝试运行该应用程序时,我得到了“jar中所有类的NoClassDefFound错误。也就是说,Eclipse IDE可以在外部库中找到这些类,但它们没有进入到类路径中应用程序。

总结:因此“外部 jar”技术在三个重要方面中的两个方面都失败了:1)没有 src 和 doc 显示为 eclipse IDE 中的附件 2)不为应用程序提供更新的类路径。

最后:当我将 jar、.properties、doc 和 src 复制到项目的 lib 文件夹中,并删除了外部 jar 引用时,一切正常。

所以我重申我最初的问题,给出的答案(添加到构建路径作为外部 jar)没有解决任何问题。

4

2 回答 2

0

他们这里的关键字是external。您可以将库添加到项目中,而无需将它们放在本地 lib 文件夹中。您只需要将它们添加为“外部档案”。添加外部库以在 Eclipse Juno 中构建路径

您还可以通过项目的属性添加和更改它们。
虽然我认为这不是一个好主意,但为您创建的每个项目添加一些库,可能会有一个脚本,但 imo 它不是内置函数。
编辑:
嗯,它不是真正内置的,对我来说它看起来很老套,但这个线程可能对你有用。它包含一种通过属性文件解决问题的方法。您只需创建一次此文件并将其添加到您的项目中。所以这是半自动的;)
但我认为这个解决方案比将它添加到每个项目中更好,因为你不应该每次都需要所有这些库......
编辑2:(在你之后)至于第一点:
该库不能作为外部库工作的原因可能有多种:

  1. 您在该文件夹中没有正确的权限
  2. 您的类路径中有多个版本的库。删除那些其他引用,然后重试

正如我已经提到的,仅将其添加到类路径不会自动提供链接的 src 和文档。我建议查看上面的链接。使用这种技术,您可能会半自动地实现目标。
但是,如果您在 Google 上搜索外部 jars 和 eclipse,您会遇到许多与您遇到相同问题的人。所以通常它应该开箱即用。你介意更新你的日食吗? 另一个编辑: 我完全忘记了你正在编写一个 Android 应用程序的事实。嗯,这是一个非常特殊的情况。关于这个问题有很多话题。也许你也应该看看这个。使用 ADT17 将库放置在库中会触发自动导入。这就是为什么它为你工作的原因。(当你把它放在 /libs 中时)

于 2013-01-11T22:01:57.750 回答
0

您可以将maven与 android 一起使用,如果 jar 在 maven Central 中,您只需要引用它。如果没有,只需将它放在本地 maven 存储库中(我在本地机器上运行一个)。

Maven 将管理诸如此类的依赖项。由于 eclipse 也有一个 maven 插件,它也会正确地看到您的项目引用。我最近进行了切换,这是非常值得的(但需要几天时间才能正确设置)。

于 2013-01-12T00:11:22.063 回答