Android Studio:将jar添加为库?

Ozzie 08/31/2017. 30 answers, 600.958 views
android android gradle android-studio android-studio dependency-management

我试图使用新的Android Studio,但似乎无法使其正常工作。

我正在使用Gson库来序列化/反序列化JSON对象。 但该库不知何故不包含在构建中。

just a MainActivity创建了一个新项目。 复制/ libs文件夹中的gson-2.2.3.jar并将其添加为库(右键单击 - >添加为库)。 这包括在android studio中的jar,所以它可以从源文件中引用。

当我尝试运行该项目时,它无法编译,所以我补充说:

compile files('libs/gson-2.2.3.jar') 

到.gradle文件中的依赖关系。 之后,它编译正确,但运行应用程序时,我得到一个ClassDefNotFoundException

有谁知道我做错了什么?

1 Comments

30 Answers


lepoetemaudit 07/12/2016.

我一直在努力争取同样的事情好几个小时,试图让Gson jar工作不下。 我终于破解了它 - 这是我采取的步骤:

  1. 把Gson jar(在我的情况下, gson-2.2.4.jar )放到libs文件夹中
  2. 右键单击它并点击“添加为库”
  3. 如果你正在使用许多jar文件,确保compile files('libs/gson-2.2.4.jar')在你的build.gradle文件中(或者compile fileTree(dir: 'libs', include: '*.jar')
  4. 做一个干净的构建(你可以在Android Studio中做到这一点,但要确保我在终端中导航到我的应用程序的根文件夹并键入gradlew clean 。我在Mac OS X上,该命令可能会不同你的系统

在我做了上述四个之后,它开始正常工作。 我认为'添加为图书馆'的步骤是我以前错过的步骤,并且直到我清理它才开始工作。

[编辑 - 添加了其他人指出的也需要的build.gradle步骤]

5 comments
6 František Žiačik 05/25/2013
gradlew clean也帮助了我。 非常感谢!
159 J c 05/27/2013
如果你不想为每个jar文件显式添加一行: compile fileTree(dir: 'libs', include: '*.jar')
61 Joe 07/17/2013
我建议利用gradle的瞬态依赖管理并从mavenCentral()下载gson(如果需要互联网连接是可以接受的,只需添加repositories { mavenCentral() }并用repositories { mavenCentral() }替换你的compile files(...) compile 'com.google.code.gson:gson:2.2.4' ,gradle会自动为你下载和管理这个jar文件,这样SCM就只能跟踪源代码文件而不是库。
29 Yster 08/10/2014
我没有在第2步中添加作为库选项。
5 Brian Marick 01/16/2015
在Android Studio 1.0.2中,不需要执行第2步和第3步,因为此行已经在默认的build.gradle :compile fileTree(dir:'libs',include:['* .jar'])

ZenBalance 12/18/2015.

以下是将本地jar文件作为库添加到模块的说明:

  1. 在模块目录的顶层创建一个'libs'文件夹(包含'src'目录的同一目录)

  2. build.gradle file添加以下内容,以便您的依赖项闭包具有:

    dependencies {
        // ... other dependencies
        compile files('libs/')
    } 
  3. Android Studio应该已经设置了一个gradlew包装器。 从命令行导航到项目的顶层(具有gradlew文件的目录)。

    运行./gradlew assemble 。 这应该与图书馆一起编译项目。 您可能需要根据需要修复build.gradle文件中的错误。

  4. 为了让Android Studio在IDE中进行编码时将本地jar文件识别为支持库,您需要执行以下几个步骤:

    4.1。 右键单击左侧面板中的模块,然后选择Open Library Settings

    4.2。 在对话框的左侧面板上,选择Libraries

    4.3。 点击左侧第二个面板上方的+符号 - > Java

    菜单

    4.4。 选择你的本地jar并将其添加到项目中。

  5. 您可能需要再次运行上述./gradlew命令

3 comments
4 Peter Arandorenko 01/19/2014
对我来说,第二步做到了。 谢谢。
Phil Freihofner 05/01/2015
这对我有效。 我在Ubuntu上安装了Android Studio 1.2 Build 141.1890965。 你为什么说“从Android Studio 2.5”? 它在Windows / Mac上是不同的版本吗? (1a)发现这很难。 组合框位于项目结构区域的左上角。 需要选择“项目”而不是“Android”并展开“应用程序”。 (1b)没有“添加”选项出现,但“粘贴”工作。 (2)我有一行“compile fileTree(dir:'libs',include:['* .jar'])”,但仍然需要添加显式的单行。 (4,5)不需要一次(3)成功完成。 谢谢!
Rahul Rastogi 05/18/2015
1加上你添加的截图。

Ganesh Pandey 09/06/2015.

在项目中right click

-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done 

按照下面的截图:

1:

步骤1

2:

在这里输入图像描述

3:

在这里输入图像描述

你会看到这个:

在这里输入图像描述

5 comments
Ganesh Pandey 09/20/2016
@CamConnor我也这么认为..其他答案已经过时
sudobomb 09/20/2016
是的,这应该是被接受的答案
Alessandro 11/23/2016
这是答案
1 Dave 12/18/2016
但它不被视为图书馆。 例如,andriod studio editor:尝试在导入的jar中导入一个包,但无法识别。
Dave 12/18/2016
找不到以这种方式删除导入模块的方法。

saneryee 05/23/2017.

在Android Stuido中,我喜欢使用Gradle来管理Gson库。

在build.gradle文件中添加以下依赖项。

repositories {mavenCentral()}

dependencies {compile 'com.google.code.gson:gson:2.2.4'} 

一切都好。

你也可以看到这篇文章。 在Android Studio中集成第三方库的最佳方式

4 comments
2 j2emanue 11/07/2014
这是使用中央回购的正确方法。
Gary Drocella 05/04/2015
这种方法是最好的,因为它使用maven。
1 Kitalda 06/16/2015
只记得更新版本号到最新的:)截至现在是2.3.1,但检查链接
Sam 11/23/2016
这是唯一可行的!

Jukurrpa 09/02/2015.

IIRC,只需使用“添加为库”就不足以与项目一起编译。

查看Intellij有关将库添加到项目的帮助

最应该感兴趣的部分是:

(在File > Project Structure )打开模块设置,然后选择依赖性选项卡。

在依存关系选项卡上,单击添加并选择库。

在“选择库”对话框中,选择一个或多个库并单击“添加选定”。

如果库没有显示在对话框中,请将其添加到“库”设置中,位于“模块”下方。

您不需要再添加compile files() ,并且应该将库正确添加到您的项目中。

5 comments
Ozzie 05/17/2013
作为库添加已经以相同的方式添加了jar。 所以我认为结果是一样的。 我会稍后再尝试。
jhirsch 05/18/2013
作为图书馆添加成功做到了这一点 - 我和Ozzie在同一条船上 - 完全相同的问题。
Jukurrpa 05/18/2013
好吧,我认为Add as library只是将它添加到库列表中,并没有将它添加到模块依赖项中。
Matt Holgate 10/22/2013
当我尝试这样做时,我发现它将编译文件()行添加到我的build.gradle文件中,但它似乎使用了绝对路径(/libs/foo.jar)。 我将它们更改为相对路径(libs / foo.jar),这为我解决了问题。
1 android learner 03/12/2015
谢谢你..它拯救了我的一天

Helzgate 07/29/2016.

所有这些解决方案都过时了。 现在在Android Studio中非常简单:

文件>新模块...

下一个屏幕看起来很奇怪,就像您正在选择一些小部件或其他东西,但将它保留在第一张图片上,然后滚动并找到“导入JAR或.AAR包”

然后从文件菜单中选择Project Structure从打开的窗口中选择app ,然后选择dependencies ,然后按green plus button ,选择module dependency然后选择您导入的模块,然后按OK

2 comments
Gary Drocella 05/04/2015
我认为使用maven仍然是更好的解决方案,特别是对于大型项目,也就是saneryee提供的解决方案。
Daniele Testa 10/11/2015
即使这似乎已经过时了。 只需将你的.jar文件放在你的“libs”目录下,它就会自动地神奇地编译到你的项目中。 Android Studio 1.4中已经有一个默认的规则设置来包含来自“libs”目录的所有* .jar文件。

user2084396 10/11/2013.

'编译文件...'曾经为我工作,但没有更多。 经过很多痛苦之后,我发现使用它可以工作:

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

我不知道为什么这有所作为,但至少该死的东西现在正在工作。

1 comments
1 scottyab 07/09/2014
这对我来说很有效,但是最近发现有时AS在你进行gradle同步之前不会选择新的/更新的jar。

Vinayak Bevinakatti 05/12/2017.

Android Studio轻松添加外部库

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

在这里输入图像描述

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

Please Note :如果您使用的是第三方库,那么最好在Gradle脚本运行时使用Gradle脚本自动下载JAR和依赖关系JAR的依赖项。

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

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

1 comments
Saurabh Bhandari 05/11/2017
这是将jar文件添加为库的最佳方法

sansa 07/24/2015.
  1. 从网站下载库文件
  2. 从窗口复制探索
  3. 从Project Explorer粘贴到lib文件夹
  4. Ctrl + Alt + Shift + S打开项目结构
  5. 选择Dependencies选项卡,使用+添加文件
  6. 工具栏使用按钮与Gradle文件同步项目

这解决了我的问题。 试试,如果有人想要更多的细节让我知道。


Fergara 09/11/2015.

我通过添加一行build.gradle来实现它的工作:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this
    compile 'com.google.code.gson:gson:2.3.1'   ----------> I added this one
    } 

不要忘记点击右上角的“立即同步”。

我正在使用Android Studio 1.0.1。

1 comments
Thufir 07/08/2017
你会详细介绍一下fileTree行的功能吗?

Sandeep 10/29/2015.

1.将jar(在我的情况下, gson-2.2.4.jar )放到libs文件夹中。

2.确保编译文件( libs/gson-2.2.4.jar )在您的build.gradle文件中。

3.现在点击“使用Gradle文件同步项目”(左上方的AVD manager按钮)。

在我完成上述三项之后,它开始正常工作。


A.B. 07/23/2016.

我发现Android Studio的Dependency Manager非常方便且功能强大,可用于管理第三方依赖关系(如此处所述的gson)。 提供一步一步的指导,为我工作(注意:这些步骤已针对Android Studio 1.6和Windows平台上的前进版本进行测试)。

Step-1:转到“Build> Edit Libraries and Dependencies ...”,它会打开对话框“Project Structure”

在这里输入图像描述

Step-2:选择“应用程序”,然后选择“依赖项”选项卡。 然后选择“添加> 1库依赖项”

在这里输入图像描述

Step-3: “选择库依赖关系”对话框,在搜索中指定“gson”并按下“搜索按钮”

在这里输入图像描述

Step-4:所需的依赖关系将显示在搜索列表中,选择com.google.code.gson:gson:2.7(这是我写答案时的最新版本),按OK

在这里输入图像描述

在“项目结构”对话框中按OK。 Gradle会相应地更新你的构建脚本。

在这里输入图像描述

Hope this would help :)

2 comments
A.B. 08/23/2016
我发现这种方法存在一些问题,一直在使用commons-io-2.5的应用程序。 将应用上传到Google Developer Console后,该应用会显示已签名apk支持的0个设备。 经过详尽的调查,我发现我必须将jar文件放在app / libs / commons-io-2.5.jar下,并更新gralde中的依赖关系,例如'compiles('libs / commons-io-2.5.jar') ',不确定我在这里做错了什么,以及为什么文档不包括这一点。
imsrgadich 08/10/2017
这是它的工作方式。 其他所有答案都不起作用。 Android Studio 2.3.3

NarenderNishad 03/23/2015.

下载并复制libs文件夹中的.jar文件,然后将这些行添加到build.gradle:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.gson:gson:2.3.1'
} 

不要忘记点击“立即同步”

Android Studio 1.1.0


Pankaj kumar 06/23/2015.

与Eclipse不同,我们不需要下载jar并将它放在/ libs文件夹中。 Gradle处理这些事情,我们只需要添加Gradle依赖项,Gradle将其下载并放入gradle缓存中。

我们需要添加依赖关系为:

dependencies {compile'c​​om.google.code.gson:gson:2.2.4'}

多数民众赞成但是,我们也可以下载jar和添加为库,但最好的做法是添加Gradle依赖项。

1 comments
1 chathura 08/26/2015
如何知道依赖线添加? 我可以在哪里找到它们?

huseyin 01/20/2015.

你可以用两个选项来做到这一点。

首先简单的方法。

将.jar文件复制到剪贴板,然后将其添加到libs文件夹。 要查看项目中的libs文件夹,请从文件夹上方的组合框中选择项目。

然后右键单击.jar文件并单击添加为库,然后选择一个模块,然后确定。 你可以在依赖块中的build.gradle文件中看到.jar文件。

dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(':okhttp-2.0.0')
        compile 'com.google.code.gson:gson:2.3.1'
    } 

第二种方法是:通过将.jar文件作为.jar模块导入,然后将此模块添加到我们想要的任何模块,我们可以将.jar文件添加到模块。

导入模块--->选择你的.jar文件 - >比import导入为.jar - 在这里输入图像描述

然后CTRL + ALT + SHIFT + S - >项目结构 - >选择你想要的模块添加一个jar - > Dependencendies - > Module Dependency。 模块的build.gradle会自动更新。 在这里输入图像描述

1 comments
Aviv Ben Shabat 01/26/2015
尼斯。 一个编辑 - 现在是“新模块”(Android Studio 1.0.1)。 “导入模块”将您发送给不同的向导..

Elshan 07/14/2016.

我已经完成了3 steps以上,并为我的工作魅力。

(I am using Android Studio 2.1.2)

在这里输入图像描述

Step 1

  • build.gradle(Module:app)下添加你的jar package name (例如compile 'com.squareup.okhttp3:okhttp:3.3.1' )到gradle构建脚本中。

在这里输入图像描述

Step 2:右键单击app文件夹-> New -> Module

在这里输入图像描述

Step 3:点击Import JAR/.AAR Package然后浏览你的包。 作为例子: OkHttp.jar

在这里输入图像描述


vuhung3990 01/30/2015.
menu File -> project struct -> module select "app" -> dependencies tab -> + button 
-> File dependency -> PATH/myfile.jar 

Aby Mathew 07/23/2015.

只需将.jar文件放在Android项目的libs文件夹中即可。

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

应用程序渐变文件中的这一行代码将完成剩下的工作。

Happy Coding :)


创建一个文件夹库。 添加您的.jar文件。 右键点击它,你会发现添加jar作为依赖。 点击它。 它的所有你需要做的。 你可以找到添加到你的build.gradle文件的依赖项。


idris yıldız 07/13/2015.

1)在Project / app / src文件夹内创建一个'your_libs'文件夹。

2)将你的jar文件复制到这个'your_libs'文件夹中

3)在Android Studio中,进入文件 - >项目结构 - >依赖关系 - >添加 - >文件依赖并导航到你的jar文件,该文件应该在'src / your_libs'

3)选择你的jar文件并点击'确定'

然后你可以看到你的build.gradle是这样的:编译文件('src / your_libs / your.jar')


mbo 07/13/2015.

在android Studio 1.1.0中。 我通过以下步骤解决了这个问题:

1:将jar文件放入libs目录。 (在Finder中)

2:打开模块设置,进入依赖关系,在左下角有一个加号按钮。 点击加号按钮,然后选择“文件依赖”。在这里你可以看到你的jar文件。 选择它并解决。


IntelliJ Amiya 12/02/2015.

第1步:现在在你的app folder你应该看到libs ,如果你没有看到它, then create it

第2步: Drag & Drop the .jar file here ,您可能会收到提示"This file does not belong to the project" ,只需点击OK按钮即可。

第3步:现在您应该jar file under libs folder看到jar file under libs folder ,右键单击jar文件并选择"Add as library", Click OK for prompt "Create Library"

第4步:现在添加了这个jar

在这里输入图像描述


user2573236 07/11/2013.

在Mac OS X上:

  1. 将jar添加为库(将jar拖动到libs,右键单击添加为lib)

  2. 将编译语句添加到build.grade

  3. 安装gradle v1.6 (使用homebrew)

    • 酿造安装gradle
    • gradle -v
    • 如果不是v1.6,升级自制软件
  4. gradle clean(重建android不工作)

这把我整理出来了。


Christina 12/27/2014.

像许多人之前指出的,你应该补充

compile files('libs/gson-2.2.3.jar') 

到你的build.gradle文件。

不过,我在Android Studio中有一个从Eclipse迁移的项目,在这种情况下,“libs”文件夹被命名为“lib”,因此删除“s”解决了问题。


Binod 07/08/2014.

compile fileTree(dir: 'libs', include: '*.jar')可以正常工作,但不能compile files(...)已经使用Studio Beta 0.8.1进行了测试


iberodev 09/25/2014.

我的答案基本上是收集上面提供的一些正确但不完整的答案。

  1. 打开build.gradle
  2. 添加以下内容:

    dependencies {
    compile 'com.android.support:appcompat-v7:19.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.gson:gson:2.3'
    } 

    这将允许支持两种不同的添加依赖的方式。 compile fileTree(dir: 'libs', include: ['*.jar']) (如@Binod提到的)告诉编译器查看文件夹库中的ANY jar。 创建这样一个文件夹'libs'是一个很好的做法,它将包含我们的应用程序需要使用的jar包。

但是这也会支持Maven依赖。 编译'com.google.code.gson:gson:2.3' (正如@saneryee所提到的),另一种推荐的方式是添加中央远程仓库中的依赖项,而不是在我们的/ libs“本地仓库”中。 它基本上是告诉gradle寻找那个版本的包,它告诉编译器在编译项目时考虑它(把它放在类路径中)

PS:我都用


user2779311 02/01/2015.

对于较新的Android 1.0.2,您的build.gradle文件中已存在以下内容

编译fileTree(包括:['* .jar'],dir:'libs')

将库jar添加到libs文件夹 - >右键单击库 - >单击添加为库 - >它要求您为项目添加它 - >选择您的项目 - >单击确定以下行自动添加到构建.gradle

编译文件('libs / android-query.jar')

那为我做了。 没有什么是必需的。 我已经展示了这个android aquery另一个android的第三方库。


parasrish 06/08/2015.
  1. 在“app”级别添加“libs”文件夹。
  2. 在这个项目中添加了所有的“罐子”。
  3. 接下来,选中“libs”文件夹中的所有jar文件,
  4. 右键单击选定的项目,并说“添加库”
  5. 那么你会在项目浏览器中找到jar扩展选项。

我观察到“CTRL + ALT + SHIFT + S - >项目结构 - >应用程序模块 - >依赖关系”已经有一个条目为“(dir:'libs',include:'* .jar')”编译选项“,最初。 按照上述步骤添加jar之后,“build.gradle”获得了新添加jar的条目,本身。


Ranjith Kumar 05/11/2016.

Android Studio 2.1我遵循这种方式,

转到应用程序 - > src->主 - > assets文件夹(如果不可用创建它) - >把你的JAR文件

在这里输入图像描述

在你的build.gradle中添加这样的依赖项,

compile files('src/main/assets/jsoup.jar')
compile files('src/main/assets/org-apache-xmlrpc.jar')
compile files('src/main/assets/org.apache.commons.httpclient.jar')
compile files('src/main/assets/ws-commons-util-1.0.2.jar') 

现在同步。 现在你的JAR文件就可以使用了。

2 comments
Deni Erdyneev 05/12/2016
为什么你不使用libs目录?
Ranjith Kumar 05/12/2016
@ErdeniErdyneev我给出了另一种存储jar文件的方法。 为什么我不使用资产? 我的方法有什么问题? 如果我错了,我准备纠正错误

user3686646 05/29/2014.

做这个 :

在应用程序文件夹下创建libs文件夹。 将.jar文件添加到libs文件夹。 然后将.jar文件添加到应用程序的build.gradle依赖项中。 最后用Gradle文件同步项目。

Related questions

Hot questions

Language

Popular Tags