Android 安卓、Eclipse、Put.jar-in“;lib"&&引用;“添加到生成路径”;vs将.jar放入“中”;libs";

Android 安卓、Eclipse、Put.jar-in“;lib"&&引用;“添加到生成路径”;vs将.jar放入“中”;libs";,android,eclipse,jar,libs,Android,Eclipse,Jar,Libs,我试图在EclipseV3.7.2中将loopj.jar库添加到我的项目中 首先,我将.jar添加到“lib”目录中,右键单击它并选择“addtobuildpath”。它编译得很好,但执行时出现错误“找不到类'com.loopj.android.http.AsyncHttpClient' 因此,我从构建路径中删除了.jar,并将其移动到“libs”目录中 当构建路径位于“libs”目录中时,无需将其添加到构建路径中,这次它的编译和执行都很好 那么,“lib”目录和“addtobuildpath”

我试图在EclipseV3.7.2中将loopj.jar库添加到我的项目中

首先,我将.jar添加到“lib”目录中,右键单击它并选择“addtobuildpath”。它编译得很好,但执行时出现错误“找不到类'com.loopj.android.http.AsyncHttpClient'

因此,我从构建路径中删除了.jar,并将其移动到“libs”目录中

当构建路径位于“libs”目录中时,无需将其添加到构建路径中,这次它的编译和执行都很好

那么,“lib”目录和“addtobuildpath”与“libs”目录之间的细微差别是什么呢

那么,“lib”目录和“addtobuildpath”与“libs”目录之间的细微差别是什么呢

Android当前的构建工具(Eclipse和命令行)希望JAR位于
libs/
目录中。它会自动将这些JAR添加到编译时构建路径中。更重要的是,它会将JAR的内容放入APK文件中,因此它们将成为运行时构建路径的一部分

使用
lib/
并手动修改构建路径可以解决编译时问题,但是JAR内容不在APK中,因此在运行时不可用。

引用:

如果仍然手动引用jar库,而不是将它们放在libs/下,请注意以下几点:

  • 如果项目是库项目,这些jar库对应用程序项目将不会自动可见。您确实应该将它们移动到libs/
  • 如果项目是一个应用程序,这可以工作,但是您必须确保将jar文件标记为已导出

Compile system?Eclipse?Ant?Maven?IntelliJ IDEA?如果使用Eclipse进行编译,则必须使用“libs”文件夹,因为它包含在生成路径中。Eclipse无法识别lib文件夹,可以将其重命名为所需的任何名称。不过,将库添加到生成路径中肯定是犯了错误,因为y这也应该可以编译。@Leandros Close,但不完全正确。正如Commonware下面解释的,jptsetung描述的行为在添加到lib/并正确拼写所有内容时与预期完全一样:它生成w/o错误,但在运行时失败,因为APK中没有包含Jar。这看起来是一个不错的答案,但让我恼火的是我太漂亮了当然,我曾经使用过lib/文件夹,而且它很有效。那是很久以前的事了,所以在Eclipse/Android中可能有一些事情已经改变了。