Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在多个项目中包含外部库,而无需制作多个android java副本_Java_Android_Eclipse_Shared Libraries - Fatal编程技术网

如何在多个项目中包含外部库,而无需制作多个android java副本

如何在多个项目中包含外部库,而无需制作多个android java副本,java,android,eclipse,shared-libraries,Java,Android,Eclipse,Shared Libraries,我在为Android编写的众多不同活动中使用afreechart和edu.emory.mathcs.jtransforms和org.afree.chart。我在配置每个新项目时遇到了很多麻烦,因此我可以 在EclipseIDE中编写代码时“查看”库中的类 请参阅这些类的附加源代码 有关这些类,请参见附件中的javadoc 当我尝试运行活动时,请参阅这些类的.class文件 我现在要做的是为我使用的每个库制作一个.jar、doc src和.properties的副本。我将这四件事复制到我正在创建的

我在为Android编写的众多不同活动中使用afreechart和
edu.emory.mathcs.jtransforms
org.afree.chart
。我在配置每个新项目时遇到了很多麻烦,因此我可以

  • 在EclipseIDE中编写代码时“查看”库中的类
  • 请参阅这些类的附加源代码
  • 有关这些类,请参见附件中的javadoc
  • 当我尝试运行活动时,请参阅这些类的.class文件
  • 我现在要做的是为我使用的每个库制作一个.jar、doc src和.properties的副本。我将这四件事复制到我正在创建的每个项目(每个活动一件)的本地lib文件夹中

    我一定错过了一些简单的东西。显然,我应该将这些库及其doc、src和.properties放在一个位置,并且我应该能够在使用这些库的每个项目中引用该位置。但我还不知道怎么做。请告诉我怎么做

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

    在回答有关外部LIB的问题后添加编辑:

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

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

    总结:“外部jar”技术在三个重要方面中有两个失败了: 1) EclipseIDE中没有附加的src和doc 2) 不要提供应用程序的更新类路径

    最后:当我将jar、.properties、doc和src复制到我的项目的lib文件夹中,并删除外部jar引用时,一切都运行得很好

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

    这里的关键字是外部的。您可以将库添加到项目中,而不必将它们放在本地库文件夹中。您只需将它们添加为“外部存档”

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

  • 您在该文件夹中没有正确的权限
  • 类路径中有多个版本的库。请删除这些其他引用,然后重试
  • 正如我已经提到的,仅仅将其添加到类路径并不会自动提供链接的SRC和文档。我建议查看上面的链接。使用这种技术,您可能会半自动地实现您的目标。
    但是如果你在谷歌上搜索外部JAR和eclipse,你会遇到许多人和你有同样的问题。所以通常情况下,它应该是开箱即用的。你介意更新你的eclipse吗? 另一次编辑: 我完全忘记了你正在编写一个Android应用程序的事实。这是一个非常特殊的情况。关于这个问题有很多话题。也许你也应该去看看。ADT17将你的库放在libs中会触发自动导入。这就是为什么它对你如此有效。(当你将它放在/libs中时)

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


    Maven将管理类似这样的依赖项。由于eclipse也有一个Maven插件,它也将正确地查看您的项目引用。我最近做了这个切换,这是非常值得的(但花了几天时间才正确地安装).

    我很乐意接受答案,只要我有一个有效的答案,我就会接受。请参阅对问题的新编辑。我很乐意接受你的答案,但它不起作用:请参阅编辑后的原始问题以了解详细信息。你是否尝试过我链接中答案提供的解决方案?因为仅将其作为外部库添加不包括src和文档。此外在,您的异常行为很奇怪。我会再看一次。起初这看起来太难了,但我稍后会尝试,因为其他方法都不起作用。