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

时间:2009-08-26 13:45:01

标签: android eclipse build.gradle class-library

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

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

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

12 个答案:

答案 0 :(得分:440)

对于Eclipse

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

  1. 在项目的根文件夹中创建名为libs 的文件夹
  2. JAR文件复制到libs文件夹
  3. 现在右键单击Jar文件,然后选择Build Path>添加到构建 路径,它将创建一个名为“Referenced Libraries”的文件夹 项目

    通过这样做,你不会 丢失您的图书馆 将项目转移到另一台计算机时,硬盘驱动器。

  4. 适用于Android Studio

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

      1. 右键单击要添加外部库的所需模块,然后选择 New> Directroy 并将其命名为' libs '
      2. 现在将 blah_blah.jar 复制到' libs '文件夹中
      3. 右键单击blah_blah.jar,然后选择“ Add as Library .. ”。这将自动添加并输入 build.gradle 作为编译文件('libs / blah_blah.jar')并同步gradle。你已经完成了
      4. 请注意:如果您使用的是第三方库,那么最好使用传递依赖,其中Gradle脚本会在gradle脚本运行时自动下载JAR和依赖JAR

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

        详细了解Gradle Dependency Mangement

答案 1 :(得分:127)

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

  1. 您的项目 - >右键单击 - >导入 - >文件系统 - > yourjar.jar
  2. 您的项目 - >右键单击 - >属性 - > Java构建路径 - >图书馆 - >添加Jar - > yourjar.jar
  3. 如果遇到问题,此video可能会有用。

答案 2 :(得分:5)

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

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

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

答案 3 :(得分:5)

我知道OP在参考Eclipse插件时结束了他的问题,但是我带着一个没有指定Eclipse的搜索来到这里。所以这适用于Android Studio:

  1. jar文件添加到libs目录(例如复制/粘贴)
  2. 右键单击jar文件,然后选择“添加为库...”
  3. 点击下一个对话框中的“确定”,如果您选择,则重命名。
  4. 就是这样!

答案 4 :(得分:4)

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

问题在于Android平台缺少javax.naming。*以及外部JAR依赖的许多其他软件包。

添加外部JAR文件,并在Eclipse中设置Order and Export可以按预期使用Android项目。

答案 5 :(得分:3)

转到当前项目

  
    

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

  

然后将它添加到当前项目的Referenced Libraries文件中。

答案 6 :(得分:1)

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

答案 7 :(得分:1)

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

  
    
        
  1. 在项目侧视图中选择项目视图(而不是包或Android)
  2.     
  3. 在项目的根文件夹中创建名为 libs 的文件夹
  4.     
  5. 将您的JAR文件复制到libs文件夹
  6.     
  7. 侧视图将更新,JAR文件将显示在您的项目中
  8.     
  9. 现在右键单击要导入的每个JAR文件,然后选择“添加为库...”,这将包含在您的项目中
  10.     
  11. 之后,您需要做的就是在代码中引用新类,例如。 import javax.mail.*
  12.        

答案 8 :(得分:1)

如果使用gradle

,在android studio中

将此添加到build.gradle

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

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

答案 9 :(得分:1)

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

  1. jar个文件放在Android应用的相应libs文件夹中。您通常会在Project>处找到它。 app> libs。如果缺少libs文件夹,请创建一个。

  2. 将此内容添加到您的build.gradle文件中app。 (不是您的Project' s build.gradle

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

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

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

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

答案 10 :(得分:0)

在您的项目中

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

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

答案 11 :(得分:0)

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

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

在用户界面中选择:

项目 - >导入 - >文件系统 - > 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个目录(../../../../../).

然后将其添加到库中:
项目 - &gt;属性 - &gt; Java构建路径 - &gt;图书馆 - &gt;添加Jar - &gt; yourjar.jar

在同一窗口中选择订单和导出标签,然后标记您的jar,以便将其添加到apk中。