如何在Android Studio中的外部库中添加jar


Answers:


318

答案较晚,尽管我想对这个问题进行深入的回答。此方法适用于Android Studio 1.0.0及更高版本。


脚步


  1. 首先将文件夹结构从Android切换到Project

在此处输入图片说明

  1. 现在搜索app内的libs文件夹-build文件夹。

在此处输入图片说明

  1. 将.jar文件粘贴到libs文件夹后。右键单击jar文件,最后单击“ 添加为库”。这将有助于在build.gradle中添加编译文件('libs / library_name.jar')[您不必在构建文件中手动输入此文件]。

在此处输入图片说明

现在,您可以开始在项目中使用该库了。


3
我没有在Android Studio 3.0.1的步骤3中获得“添加为库”选项
Shylendra Madda,2017年

3
是的,我发现现在,如果已经添加了该选项,则不会显示该选项。
Shylendra Madda

完美解决了我的问题
DIRTY DAVE

138

将jar文件添加到该文件夹app/libs。然后右键单击jar文件,然后单击“添加为库”。

如果没有libs文件夹,则可以创建它。单击显示为“ Android”的组合框,然后将其更改为“ Project”

在此处输入图片说明

在这里,您可以右键单击目录树中的“应用”,然后转到“新建” =>“目录”


36
如果找不到lib文件夹,只需单击显示为“ android”的组合框,然后选择“ Project”。(该按钮在项目浏览器的顶部)
Gayan Weerakutti 2015年

2
然后,您可以展开您的项目以找到“ libs”文件夹,或者右键单击您的项目并创建一个新目录。然后,您可以使用OS文件管理器将库的JAR文件移动到该目录中。(感谢@reversiblean,让我开始学习!)
理查德(Richard

@reversiblean的注释为+1 -默认视图是“项目文件”而不是“项目”,该视图不显示“ app / libs”文件夹,但也不允许您创建它。
Jules

4
我没有在Android Studio 3.0.1中获得“添加为库”选项
Shylendra Madda,2017年

1
@Thinsky是的,我发现现在,如果已经添加了该选项,则不会显示该选项。
Shylendra Madda

63

将您的JAR放在app / libs中,并在app / build.gradle中添加以下dependencies部分:

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


我可以选择另一个/我自己的路径,例如“ values \ my_folder \ myjar.jar”吗?因为我正在研究android studio的源代码。
Sanket Prabhu 2015年

您只需要更改'dir'的值即可(因此,请用所需的任何内容替换'libs')。
加坦

1
编译已被弃用
迪帕克·塞缪尔拉詹

1
是的,Deepak是正确的-不建议使用“编译” ...所以只需将其替换为“实现”,它就可以正常工作。
标记

40

在应用程序目录中创建“ libs”文件夹,将您的jar文件复制到libs文件夹中,右键单击Android Studio中的jar文件并添加为库...,然后打开build.gradle并添加以下内容:

dependencies {
    implementation files('libs/your jar file.jar')
}

1
Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
迈克尔

20

步骤1:为您的项目下载任何JAR文件。在此处输入图片说明

步骤2: 复制.jar文件,并将其复制到libs文件夹中。

在此处输入图片说明 在此处输入图片说明

步骤3: 点击文件>项目结构>选择应用>依赖关系

在此处输入图片说明

第4步:

在此处输入图片说明

步骤5:

在此处输入图片说明

步骤6:点击“确定”按钮后,我们可以看到Dependencies添加如下:

在此处输入图片说明


13

解析jar的示例...

从项目视图将jars添加到libs文件夹…如果不存在,则创建lib文件夹

在此处输入图片说明

复制所有罐子到那里...

将库添加到gradle ....在build.gradle文件中:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.android.support:design:23.0.0'
    compile 'com.android.support:percent:23.0.0'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile fileTree(dir: 'libs', include: 'Parse-*.jar’)
}

为了添加lib文件夹的所有jar ...将Parse-*。jar更改为* .jar


11

这是您可以.jar在Android Studio 2.1.3中添加文件的方式。

  1. 复制.jar文件 jar文件复制屏幕截图

  2. 将文件粘贴到Libs文件夹中,然后右键单击.jar文件并按 Add as library 在此处输入图片说明

  3. 打开build.gradle 在此处输入图片说明

  4. 在依赖项下添加行,如屏幕快照所示 在此处输入图片说明在此处输入图片说明

  5. 现在按播放按钮,添加完.jar文件 在此处输入图片说明


(至少使用AS 2.3)可以跳过步骤3和4。AS自动将JAR添加到build.gradle依赖项中。
永Po

2
跳过步骤3和4,然后打开File-> Project Structure-> app-> dependencies->单击+-> jar依赖关系,然后选择jar文件。它对我的工作
Jhohannes Purba

3

基于GUI的方法是在项目中添加一个附加模块。

  1. 从文件菜单中选择项目结构,然后单击左上角的绿色加号图标。
  2. 弹出新的模块对话框
  3. 从电话和平板电脑应用程序组中,选择“导入JAR或AAR程序包”选项,然后单击下一步。
  4. 请按照以下步骤创建一个包含您的JAR文件的新模块。
  5. 单击与您的主项目相对应的条目,然后选择“依赖项”选项卡。
  6. 将依赖性添加到您在步骤4中创建的模块。

最后一条建议。确保您包含的JAR文件最多使用JDK 1.7构建。与错误消息“ com.android.dx.cf.iface.ParseException:错误的类文件魔术师(cafebabe)或版本(0034.0000)”相关的许多问题直接源于此:0 :。


如其他答案所述,您是否确定这种方法比“ copy-jar-to-libs”文件夹方法更好?
Eido95 '17

@ Eido95这就是我在2015年所做的事情。我记得曾尝试在Android应用程序中包含JSON解析,这才是真正有效的方法。
thanassis

您认为我应该使用哪种方法来进行简单的外部JAR添加?
Eido95

3

添加Jar文件Android Studio步骤的简单方法:

  1. 将jar文件复制并粘贴到项目的libs文件夹中。
  2. 从文件菜单->项目结构中单击文件(在Windows / Linux中为CTRL + SHIFT + ALT + S,在Mac OS X中为⌘+;)。
  3. 在左侧面板->依赖项选项卡中选择模块。
  4. 添加...→项目库→附加Jar。

3

如果有人在寻找另一个解决方案而没有将jar文件实际复制到项目目录中(例如,在多个项目中使用jar时):

打开build.gradle并添加

def myJarFolder = 'C:/Path/To/My/Jars'

[...]

dependencies {
    [...]
    compile fileTree(dir: myJarFolder + '/jar/Sub/Folder/1', include: ['*.jar'])
    compile fileTree(dir: myJarFolder + '/jar/Sub/Folder/2', include: ['*.jar'])
    [...]
}

请注意,您当然不必使用myJarFolder变量,但是我发现它很有用。路径也可以是相对的,例如../../Path/To/My/Jars
经过AndroidStudio 3.0测试

更新:对于Gradle Plugin> 3.0,请使用实现而不是compile

dependencies {
        [...]
        implementation fileTree(dir: myJarFolder + '/jar/Sub/Folder/1', include: ['*.jar'])
        implementation fileTree(dir: myJarFolder + '/jar/Sub/Folder/2', include: ['*.jar'])
        [...]
    }

我对此有疑问。我正在做一个库,依赖该库的应用程序正在运行到NoClassDefFoundError中。我也因无法找到课程而面临很多错误
技巧论

3

在Android Studio版本3.0或更高版本中,我使用了以下波纹管:

  1. 创建如果不存在文件夹,则将到应用目录
    • 去项目
    • 前往应用程式
    • 单击应用程序->新建->目录
    • 将文件夹命名为libs
    • 罐子粘贴到库中文件夹
    • 图像看起来像 在此处输入图片说明

2.在build.gradle中添加波纹管

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation files('libs/com.ibm.icu_3.4.4.1.jar')

1

如果你不看到选项“添加库”,请确保您提取(解压缩)文件,让你有mail.jar和没有mail.zip

然后右键单击您的文件,您可以看到“添加为库”选项。


1

请在build.gradle中提供jar文件的位置

implementation fileTree(dir: '<DirName>', include: ['*.jar'])

例:

implementation fileTree(dir: 'C:\Downloads', include: ['*.jar'])

添加单个jar文件

implementation files('libs/foo.jar')

注意:在最新的gradle中不推荐使用compile,因此请改用实现。


0

将jar作为外部库添加到您的android项目中的“官方方式”是将jar添加到build.gradle的dependencies {}部分中 。

如果您已完成上述所有操作,但没有完成上述工作,那么还有两种其他可能性:

  1. 如果Android Studio或其他某个IDE在编辑器中未显示红色下划线错误,但在Java编译器中运行错误,请检查JAR。您的jar可能没有包含正确的清单,因此编译器不知道jar可以提供什么/不知道它的包名称
  2. 也许它的文件夹结构搞砸了。文件夹结构与其软件包名称不匹配。package a.b.c;应该与文件夹a>文件夹b>文件夹c匹配。
  3. 软件包的名称有一定的冲突。(相信我,这发生在我身上,花了几个小时才弄清楚。)

但是,如果您要使用cordova,那么这里有一些添加外部罐子的技巧。

build-extras.gradle ”是管理gradle文件的更好方法。

以下是在基于Cordova的android项目中管理其他设置的步骤:

  1. 将您的jar添加到build-extras.gradle中:
    //Other settings go here, e.g.: buildscript { ... }
    ext.postBuildExtras = {
    // you may have some other settings, e.g.: android { ... }
            dependencies {
                    compile files('libs/abc.jar')
            }
    }

(此处更详细的步骤:扩展cordova gradle文件以包括google services

  1. 在终端中,执行以下操作:

cordova build android

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.