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

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

Order和Export似乎被忽略了,并且在运行时缺少来自外部JAR的所有类。

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

260053 次浏览

是的,你可以用它。以下是如何做到的:

  1. 你的项目->右键单击->导入->文件系统-> yourjar.jar
  2. 你的项目->右击->属性-> Java构建路径-> Libraries -> Add Jar -> yourjar.jar

如果你遇到一些问题,这个视频可能会有用。

事实证明,我没有很好地查看我的堆栈跟踪,问题不在于没有包括外部JAR。

问题是Android平台缺少javax.naming。*和许多外部JAR也依赖的其他包。

添加外部JAR文件,并在Eclipse中设置Order和Export与Android项目一样。

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

为Eclipse

向Android项目或任何Java项目添加外部jar的一个好方法是:

  1. 创建一个名为libs的文件夹在你的项目的根文件夹
  2. 复制你的JAR文件到libs文件夹
  3. 现在右键单击Jar文件,然后选择Build Path > Add to Build 路径,这将在您的目录中创建一个名为“引用库”的文件夹 项目< / p > 这样做,你就不会 丢失您的数据库中正在引用的库 当您将项目转移到另一台计算机时,硬盘驱动器。

针对Android Studio

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

Missing Image

  1. 右键单击想要添加外部库的模块,然后选择新建>目录并将其命名为'填词'
  2. 现在将blah_blah.jar复制到'填词'文件夹中
  3. 右键单击blah_blah.jar,然后选择'添加为库..'。这将自动在build.gradle中添加一个条目作为编译文件(“libs / blah_blah.jar”)并同步gradle。这样就做完了

请注意:如果你正在使用第三方库,那么最好使用过渡依赖,当Gradle脚本运行时,Gradle脚本会自动下载JAR和依赖JAR。

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

阅读更多关于Gradle依赖管理

Goto当前项目

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

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

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

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

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

创建文件夹(像lib)在你的项目中,复制你的罐子到那个文件夹。 现在右击项目到配置生成路径,在构建路径中选择

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

我知道OP在结束他的问题时引用了Eclipse插件,但我在这里进行的搜索并没有指定Eclipse。Android Studio是这样的:

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

就是这样!

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

  1. 在项目侧视图中选择项目视图(而不是Packages或Android)
  2. 在项目的根文件夹中创建一个名为< >强填词< / >强的文件夹
  3. 将JAR文件复制到libs文件夹
  4. 侧视图将被更新,JAR文件将显示在您的项目中
  5. 现在右键单击您想要导入的每个JAR文件,然后选择“Add as Library…”,这将把它包含到您的项目中
  6. 在那之后,你所需要做的就是在你的代码中引用新类,例如。import javax.mail.*

在android studio如果使用gradle

将此添加到build.gradle

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

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

将.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 . Jar

在同一个窗口中选择订购及出口选项卡并标记你的jar,这样它就会被添加到apk中。

如果你正在使用gradle构建系统,请遵循以下步骤:

  1. jar文件放在你的android应用程序各自的libs文件夹中。你通常会发现它在Project > app > libs。如果缺少libs文件夹,则创建一个。

  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')