我如何在Android项目中使用外部JAR?

我创build了一个Android项目,并在我的项目中添加了一个外部JAR(hessian-4.0.1.jar)。 然后,我将JAR添加到构buildpath,并在“订单和导出”中将其检查。

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

在使用Eclipse插件构buildAndroid应用程序时,是否有一种方法可以正确包含来自外部JAR的所需类? 我不想用ant或Maven。

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

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

    通过这样做,每当将项目传输到另一台计算机时, 不会丢失在硬盘上引用的

******更新*******

Android Studio中添加外部库

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

在这里输入图像描述

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

请注意:如果您正在使用第三方库,那么最好使用传递依赖关系 ,Gradle脚本在Gradle脚本运行时自动下载JAR和依赖关系JAR。

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

阅读更多关于Gradle Dependency Mangement的信息

是的,你可以使用它。 这里是如何:

  1. 您的项目 – >右键单击 – >导入 – >文件系统 – > yourjar.jar
  2. 你的项目 – >右键 – >属性 – > Java Build Path – > Libraries – > Add Jar – > yourjar.jar

这个video可能会有用,如果你有一些问题。

我目前正在使用SDK 20.0.3,以前的解决scheme都没有为我工作。

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

在我的情况下,我有权访问源代码,并能够使用我在这里描述的方法创build一个Android jar文件: https : //stackoverflow.com/a/13144382/545064

我知道OP参考Eclipse插件来结束他的问题,但我到了这里,没有指定Eclipse的search。 所以这里适用于Android Studio:

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

而已!

原来我的堆栈跟踪还不够好,问题不在于外部的JAR没有包含在内。

问题在于Android平台缺lessjavax.naming。*以及外部JAR具有依赖关系的许多其他包。

在Android项目中添加外部JAR文件,并在Eclipse中设置“订单和导出”按预期工作。

转到当前项目

RightClick-> Properties-> Java Build Path->将Jar文件添加到库中 – >点击OK

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

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

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

  1. 在Project sideview中selectProject视图(而不是Packages或Android)
  2. 在项目的根文件夹中创build一个名为libs的文件夹
  3. 将你的JAR文件复制到libs文件夹
  4. 侧视图将被更新,JAR文件将显示在您的项目中
  5. 现在右键单击每个要导入的JAR文件,然后select“Add as Library …”,将其添加到您的项目中
  6. 之后,所有你需要做的就是引用你的代码中的新类,例如。 import javax.mail.*

在Android Studio如果使用gradle

添加这个build.gradle

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

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

如果您正在使用gradle生成系统,请按照下列步骤操作:

  1. jar文件放在你的android应用程序的相应libs文件夹中。 你一般会在Project > app > libsfind它。 如果缺lesslibs文件夹,请创build一个。

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

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

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

如果不想包含所有的jar文件,那么你可以单独添加它。

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

在你的项目中创build一个文件夹 (如lib), 将你的jar复制到该文件夹 。 现在去右击项目, configuration构buildpath ,在构buildpathselect

“添加jar子” 浏览到您创build的文件夹选取jar子。

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

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

在UI中select:

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

该链接保存在.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个目录(../../../../../)。

然后将其添加到库中:
Project – > Properties – > Java Build Path – > Libraries – > Add Jar – > yourjar.jar

在同一个窗口中selectOrder and Export选项卡,并标记你的jar,所以它会被添加到apk中。