Android Studio:将jar添加为库?

问题描述 投票:986回答:34

我正在尝试使用新的Android Studio,但我似乎无法让它正常工作。

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

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

当我尝试运行该项目时,它无法编译,所以我添加:

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

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

有谁知道我做错了什么?

android gradle android-gradle gson dependency-management
34个回答
1507
投票

我已经在同样的事情上苦苦挣扎了好几个小时,试图让Gson jar继续工作。我终于破解了它 - 这是我采取的步骤:

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

在我完成上述四个之后,它开始正常工作。我认为'添加为库'步骤是我之前错过的那个步骤,直到我清理它之前它才能工作。

[编辑 - 添加了build.gradle步骤,这也是必要的,正如其他人指出的那样]


17
投票

我通过在build.gradle中添加一行来实现它:

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

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

我正在使用Android Studio 1.0.1。


13
投票

我发现Android Studio的Dependency Manager非常方便且功能强大,可用于管理第三方依赖项(如此处提到的gson)。提供适用于我的分步指南(注意:这些步骤在Windows平台上针对Android Studio 1.6和以后的版本进行了测试)。

步骤1:转到“构建>编辑库和依赖关系...”它将打开对话框“项目结构”

enter image description here

步骤2:选择“app”,然后选择“Dependencies”选项卡。然后选择“添加> 1库依赖项”

enter image description here

步骤3:将显示“选择库依赖关系”对话框,在搜索中指定“gson”并按“搜索按钮”

enter image description here

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

enter image description here

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

enter image description here

希望这会有所帮助:)


11
投票

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

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

3.现在单击“使用Gradle文件同步项目”(左侧是顶部栏上的AVD管理器按钮)。

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


9
投票

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

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

别忘了点击“立即同步”


9
投票

您可以使用两个选项执行此操作。

第一个简单方法。

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

然后右键单击.jar文件并单击add as a library然后选择一个模块然后确定。您可以在dependencies块中的build.gradle文件中看到.jar文件。

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

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

导入模块--->选择你的.jar文件 - >导入为.jar -

然后CTRL + ALT + SHIFT + S - >项目sturure - >选择你想要的模块添加一个jar - > Dependencendies - > Module Dependency。模块的build.gradle将自动更新。


7
投票

我已经完成了3个步骤以及它的工作魅力。

(我使用的是Android Studio 2.1.2)

enter image description here

步骤1

  • 将jar包名称(作为示例compile 'com.squareup.okhttp3:okhttp:3.3.1')添加到build.gradle(Module:app)下的gradle构建脚本中。

enter image description here

第2步:右键单击app文件夹 - >新建 - >模块

enter image description here

第3步:单击Import JAR / .AAR Package然后浏览您的包。例如:OkHttp.jar

enter image description here


7
投票

.jar文件放在Android项目的libs文件夹中。

然后在应用程序的gradle文件中添加以下代码:

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

对于Android gradle插件3.0及更高版本,最好使用此代码:

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

7
投票

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

我们需要添加依赖项:

依赖关系{implementation'command.google.code.gson:gson:2.2.4'}

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


6
投票

使用Android Studio 3+:

您应该只需将jar文件复制到app文件夹下的libs文件夹即可。

... myproject \ app \ libs \ myfile.jar

然后从“项目”窗口的下拉列表中选择“项目文件”,右键单击项目,选择“同步”以在“项目文件”中查看该文件。它会自动在gradle文件中添加依赖项(Module:app)。

dependencies {
...
    implementation files('libs/myfile.jar')

这是另一个解决方案:

转到“项目文件”视图(从下拉列表中选择“项目文件”)。

enter image description here

选择New ... Directory,在app下创建一个名为libs的文件夹。

enter image description here

打开文件资源管理器,将jar文件复制并粘贴到libs文件夹中。

在Android Studio中,右键单击jar文件,然后从弹出菜单中选择Add as a Library ....

enter image description here

您应该在gradle文件中看到依赖项列表中列出的文件:

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

打开你的java文件,然后在那里添加import语句:

import com.xxx.xxx;

5
投票
menu File -> project struct -> module select "app" -> dependencies tab -> + button 
-> File dependency -> PATH/myfile.jar

264
投票

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

  1. 在模块目录的顶层创建一个'libs'文件夹(包含'src'目录的同一目录)
  2. build.gradle file中添加以下内容,以便您的依赖关系具有: dependencies { // ... other dependencies compile files('libs/<your jar's name here>') }
  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命令

4
投票

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


4
投票

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


4
投票

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

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

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


4
投票

第1步:现在你的app folder下你应该看到libs,如果你没有看到它,那么创建它。

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

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

第4步:现在添加了这个罐子。

enter image description here


4
投票

我已经阅读了这里的所有答案,它们似乎都涵盖了旧版本的Android Studio!

使用Android Studio 2.2.3创建的项目我只需要在libs下创建一个app目录并将我的jar放在那里。我是通过我的文件管理器完成的,无需在Android Studio中单击或编辑任何内容。

为什么会这样?打开构建/编辑库和依赖项,您将看到:

{include=[*.jar], dir=libs}

3
投票

在Mac OS X上:

  1. 添加jar作为库(将jar拖到libs,右键单击add as lib)
  2. 将编译语句添加到build.grade
  3. 安装gradle v1.6(使用自制软件) brew安装gradle gradle -v 如果不是v1.6,升级自制程序
  4. gradle clean(重建android没有用)

这把我排除在外。


3
投票

像之前指出的许多人一样,你要加上

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

到您的build.gradle文件。

但是我在Android Studio中有一个从Eclipse迁移的项目,在这种情况下,“libs”文件夹名为“lib”,所以对我来说删除“s”解决了这个问题。


3
投票
  1. libs级别添加了app文件夹。
  2. 在此项目中添加了所有jars
  3. 接下来,选择libs文件夹中的所有jar,
  4. 右键单击所选项目,然后说add library
  5. 然后你会在项目资源管理器中找到jars扩展选项。

我观察到CTRL + ALT + SHIFT + S - >项目结构 - > app-module - > Dependencies“最初在(dir: 'libs', include: '*.jar')下已经有compile-option的条目。并且在按照上述步骤添加jar之后,build.gradle得到了新添加的jar的条目本身。


3
投票

在Android Studio 2.1中我按照这种方式,

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

enter image description here

在build.gradle中添加依赖项,

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

立即同步。现在您的JAR文件已准备好使用。


3
投票

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

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

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

implementation files('libs/android-query.jar')

这样做对我来说。没有必要了。我已经为android aquery展示了另一个用于android的第三方库。


109
投票

在项目中右键单击

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

按照下面的屏幕截图:

1:

Step 1

2:

enter image description here

3:

enter image description here

你会看到这个:

enter image description here


2
投票

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

  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所提到的)告诉编译器查看文件夹libs下的任何jar。创建这样一个文件夹'libs'是一个很好的做法,它将包含我们的应用程序需要使用的jar包。

但这也将允许支持Maven依赖。编译'com.google.code.gson:gson:2.3'(如@saneryee所述)是另一种推荐的方法来添加中央远程存储库中的依赖项,而不是我们的/ libs“本地存储库”。它基本上告诉gradle查找该软件包的那个版本,它告诉编译器在编译项目时考虑它(在类路径中有它)

PS:我同时使用两者


47
投票

IIRC,仅仅使用“添加为库”还不足以使用该项目进行编译。

检查Intellij's help有关向项目添加库的信息

你最感兴趣的部分是:

(在File > Project Structure中)打开模块设置并选择Dependencies选项卡。

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

在“选择库”对话框中,选择一个或多个库,然后单击“添加所选项”。

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

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


46
投票

在Android Studio中,我喜欢使用Gradle来管理Gson lib。

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

repositories {mavenCentral()}

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

一切都好。

你也可以看到这篇文章。 The best way to integrate third party library in Android studio


40
投票

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

文件>新模块......

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

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


35
投票

在Android Studio中添加外部库的简单步骤

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

enter image description here

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

请注意:如果您使用的是第三方库,那么最好使用依赖项,其中Gradle脚本在gradle脚本运行时自动下载JAR和依赖项JAR。

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

了解更多关于Gradle Dependency Mangement的信息


33
投票

'编译文件......'曾经为我工作,但不再是。经过多次痛苦,我发现使用它可以起作用:

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

我不知道为什么会有所作为,但是,至少该死的东西现在正在发挥作用。


17
投票
  1. 从网站下载库文件
  2. 从Windows资源管理器复制
  3. 从Project Explorer粘贴到lib文件夹
  4. Ctrl + Alt + Shift + S打开项目结构
  5. 选择Dependencies选项卡,使用+添加文件
  6. 工具栏使用按钮将项目与gradle文件同步

这解决了我的问题。试试,如果有人想要更多细节,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.