331

我创建了一个 Android 项目并将一个外部 JAR (hessian-4.0.1.jar) 添加到我的项目中。然后我将 JAR 添加到构建路径并在 Order and Export 中将其选中。

Order 和 Export 似乎被忽略了,并且外部 JAR 中的所有类在运行时都丢失了。

在使用 Eclipse 插件构建 Android 应用程序时,是否有一个技巧可以从外部 JAR 中正确包含所需的类?我不想使用 ant 或 Maven。

4

12 回答 12

445

对于日食

将外部 JAR 添加到您的 Android 项目或任何 Java 项目的一个好方法是:

  1. libs在项目的根文件夹中创建一个名为的文件夹
  2. 将您的JAR 文件复制到该libs文件夹
  3. 现在右键单击 Jar 文件,然后选择 Build Path > Add to Build Path,这将在您的项目中创建一个名为“Referenced Libraries”的文件夹

    通过这样做,当您将项目传输到另一台计算机时,您不会丢失硬盘驱动器上引用的库。

对于 Android 工作室

  1. 如果您在项目资源管理器中的Android视图中,请将其更改为项目视图,如下所示

缺少图像

  1. 右键单击要添加外部库的所需模块,然后选择New > Directroy并将其命名为“ libs
  2. 现在将blah_blah.jar复制到“ libs ”文件夹中
  3. 右键单击 blah_blah.jar,然后选择“添加为库.. ”。这将作为编译文件('libs/blah_blah.jar')自动添加并进入build.gradle并同步 gradle。你完成了

请注意:如果您使用的是 3rd 方库,那么最好使用传递依赖项,其中 Gradle 脚本会在 gradle 脚本运行时自动下载 JAR 和依赖项 JAR。

例如:编译 'com.google.android.gms:play-services-ads:9.4.0'

阅读有关Gradle 依赖管理的更多信息

于 2011-07-28T12:32:24.900 回答
127

是的,你可以使用它。方法如下:

  1. 您的项目 -> 右键单击​​ -> 导入 -> 文件系统 -> yourjar.jar
  2. 您的项目 -> 右键单击​​ -> 属性 -> Java 构建路径 -> 库 -> 添加 Jar -> yourjar.jar

如果您遇到一些问题,此视频可能会很有用。

于 2009-08-26T22:39:28.737 回答
5

我目前正在使用 SDK 20.0.3,以前的解决方案都不适合我。

hessdroid 在 hess 失败的地方工作的原因是因为这两个 jar 文件包含为不同虚拟机编译的 java。Java 编译器创建的字节码不能保证在 Dalvik 虚拟机上运行。Android 编译器创建的字节码不能保证在 Java 虚拟机上运行。

就我而言,我可以访问源代码,并且能够使用我在此处描述的方法为其创建一个 Android jar 文件: https ://stackoverflow.com/a/13144382/545064

于 2012-10-30T17:30:34.727 回答
5

我知道 OP 参考 Eclipse 插件结束了他的问题,但我到达这里时进行了未指定 Eclipse 的搜索。所以这里适用于 Android Studio:

  1. jar文件添加到 libs 目录(例如复制/粘贴)
  2. 右键单击jar文件并选择“添加为库...”
  3. 在下一个对话框中单击“确定”,或者如果您选择重命名。

而已!

于 2013-06-09T19:23:07.203 回答
4

原来我的堆栈跟踪看起来不够好,问题不在于不包括外部 JAR。

问题是 Android 平台缺少 javax.naming.* 以及外部 JAR 也具有依赖关系的许多其他包。

在 Eclipse 中添加外部 JAR 文件并设置 Order 和 Export 可以在 Android 项目中正常工作。

于 2009-08-27T14:15:35.497 回答
3

转到当前项目

右键单击->属性->Java构建路径->将Jar文件添加到库中->单击确定

然后将其添加到当前项目中的引用库文件中。

于 2012-07-03T05:10:17.420 回答
1

Android 的 Java API 不支持 javax.naming.* 和许多其他 javax.* 东西。您需要将依赖项包含为单独的 jar。

于 2010-11-24T03:54:54.090 回答
1

如果使用 Android Studio,请执行以下操作(我已复制并修改了 @Vinayak Bs 答案):

  1. 在 Project 侧视图中选择 Project 视图(而不是 Packages 或 Android)
  2. 在项目的根文件夹中创建一个名为libs的文件夹
  3. 将 JAR 文件复制到 libs 文件夹
  4. 侧视图将被更新,JAR 文件将显示在您的项目中
  5. 现在右键单击要导入的每个 JAR 文件,然后选择“添加为库...”,这会将其包含在您的项目中
  6. 之后,您需要做的就是在代码中引用新类,例如。import javax.mail.*
于 2015-02-06T20:52:21.483 回答
1

如果您使用的是gradle构建系统,请按照下列步骤操作:

  1. jar文件放入libs您的 android 应用程序的相应文件夹中。您通常会在Project> app>中找到它libs。如果libs文件夹丢失,请创建一个。

  2. 将此添加到您的build.gradle文件app中。(不是你Projectbuild.gradle

    dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
        // other dependencies
    }
    

    这将包括文件夹中所有jar可用的libs文件。

如果不想包含所有jar文件,则可以单独添加。

compile fileTree(dir: 'libs', include: 'file.jar')

于 2016-03-30T20:20:18.873 回答
1

如果使用 gradle 在 android studio

将此添加到 build.gradle

compile fileTree(dir: 'libs', include: ['*.jar'])

并将jar文件添加到libs文件夹

于 2015-08-29T21:51:03.037 回答
0

在您的项目中创建一个文件夹(如 lib),将您的 jar 复制到该文件夹​​。现在通过右键单击项目来配置构建路径,在构建路径中选择

“添加 jar” 浏览到您创建的文件夹选择jar。

于 2013-01-24T12:26:20.640 回答
0

将 .jar 文件复制到 Android 项目的文件夹中并不总是可行的。
特别是如果它是您工作区中另一个项目的输出,并且它会不断更新。

要解决这个问题,您必须将 jar 作为链接文件添加到项目中,而不是导入它(这将在本地复制它)。

在 UI 中选择:

项目 -> 导入 -> 文件系统 -> yourjar.jar ->(选项区域)高级 -> 在工作区中创建链接。

链接保存在.project文件中:

<linkedResources>
    <link>
        <name>yourjar.jar</name>
        <type>1</type>
        <locationURI>PARENT-5-PROJECT_LOC/bin/android_ndk10d_armeabi-v7a/yourjar.jar</locationURI>
    </link>
</linkedResources>

PARENT-5-PROJECT_LOC表示相对于项目文件,向上 5 个目录 (../../../../../)。

然后将其添加到库中:
项目 -> 属性 -> Java 构建路径 -> 库 -> 添加 Jar -> yourjar.jar

在同一窗口中选择Order and Export选项卡并标记您的 jar,以便将其添加到 apk。

于 2015-10-31T07:44:56.143 回答