Android Studio:将jar添加为库?

Ozz*_*zie 1006 android dependency-management gradle gson android-gradle-plugin

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

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

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

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

compile files('libs/gson-2.2.3.jar')
Run Code Online (Sandbox Code Playgroud)

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

有谁知道我做错了什么?

小智 1517

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

  1. 将Gson jar(在我的情况下gson-2.2.4.jar)放入libs文件夹中
  2. 右键单击它并点击"添加为库"
  3. 确保它compile files('libs/gson-2.2.4.jar')在您的build.gradle文件中(或者compile fileTree(dir: 'libs', include: '*.jar')如果您使用的是多个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其他人指出的必要步骤]

  • 如果你不想为每个jar文件显式添加一行:`compile fileTree(dir:'libs',include:'*.jar')` (171认同)
  • 我建议利用gradle的瞬态依赖管理并从mavenCentral()下载gson(如果需要互联网连接是可接受的.只需添加`repositories {mavenCentral()}`并替换你的`compile files(...)`行`compile'c​​om.google.code.gson:gson:2.2.4'`和gradle会自动为你下载和管理jar文件.这样就可以让SCM只跟踪源代码文件,而不是库. (65认同)
  • 我没有在步骤2中获得"添加为库"选项. (37认同)
  • gradlew clean也帮助了我.非常感谢! (6认同)
  • 在Android Studio 1.0.2中,不需要步骤2和3,因为该行已经在默认的`build.gradle`中:compile fileTree(dir:'libs',include:['*.jar']) (6认同)
  • 找不到libs文件夹,或者在哪里添加libs文件夹?检查此链接.为什么这样做... http://stackoverflow.com/a/27120224/1273024 (4认同)
  • 你是我的英雄!使用build.gradle文件在我的项目中的两个目录上清除gradlew.bat,它工作正常! (3认同)
  • 解决:我应该在App文件夹中的build.gradle中添加依赖项,而不是root中的build.gradle! (3认同)

Zen*_*nce 266

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

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

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

    dependencies {
        // ... other dependencies
        compile files('libs/<your jar's name here>')
    }
    
    Run Code Online (Sandbox Code Playgroud)
  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命令


Gan*_*dey 109

在项目中右键单击

-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done
Run Code Online (Sandbox Code Playgroud)

按照下面的屏幕截图:

1:

步骤1

2:

在此输入图像描述

3:

在此输入图像描述

你会看到这个:

在此输入图像描述

  • 但它不被认为是图书馆.例如,andriod工作室编辑器:尝试在导入的jar中导入一个包,无法识别. (2认同)

Juk*_*rpa 47

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

检查Intellij有关向项目添加库的帮助

你最感兴趣的部分是:

(输入File > Project Structure)打开模块设置,然后选择"依赖关系"选项卡.

在"依赖关系"选项卡上,单击"添加"并选择"库".

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

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

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


小智 47

在Android Stuido中,我喜欢使用Gradle来管理Gson lib.

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

repositories {mavenCentral()}

dependencies {compile 'com.google.code.gson:gson:2.2.4'}
Run Code Online (Sandbox Code Playgroud)

一切都好.

你也可以看到这篇文章. 在Android工作室中集成第三方库的最佳方式

  • 这是使用中央回购的正确方法. (3认同)

Hel*_*ate 40

所有这些解决方案都已过时.现在在Android Studio中真的很简单:

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

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

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

  • 即使这似乎已经过时了.只需将.jar文件放在"libs"目录中,它就会自动编译到您的项目中.Android Studio 1.4中已经有一个默认规则设置,用于包含"libs"目录中的所有*.jar文件. (2认同)

Vin*_*tti 35

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

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

在此输入图像描述

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

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


san*_*alk 17

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

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


Fer*_*ara 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
    }
Run Code Online (Sandbox Code Playgroud)

不要忘记点击右上角的"立即同步".

我正在使用Android Studio 1.0.1.


A.B*_*.B. 13

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

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

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

希望这会有所帮助:)


小智 11

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

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

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

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


hus*_*yin 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'
    }
Run Code Online (Sandbox Code Playgroud)

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

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

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


Nar*_*had 9

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

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

别忘了点击"立即同步"


Pan*_*mar 7

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

我们需要添加依赖项:

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

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


Aby*_*hew 7

.jar文件放在libsAndroid项目的文件夹中.

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

    compile fileTree(dir: 'libs', include: ['*.jar'])
Run Code Online (Sandbox Code Playgroud)

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

    implementation fileTree(dir: 'libs', include: ['*.jar'])
Run Code Online (Sandbox Code Playgroud)


Els*_*han 7

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

(我使用的是Android Studio 2.1.2)

在此输入图像描述

步骤1

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

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述


liv*_*ove 6

使用Android Studio 3+:

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

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

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

dependencies {
...
    implementation files('libs/myfile.jar')
Run Code Online (Sandbox Code Playgroud)

这是另一个解决方案:

转到"项目文件"视图(从下拉列表中选择"项目文件").

在此输入图像描述

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

在此输入图像描述

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

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

在此输入图像描述

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

dependencies {
...
    implementation files('libs/myfile.jar')
}
Run Code Online (Sandbox Code Playgroud)

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

import com.xxx.xxx;
Run Code Online (Sandbox Code Playgroud)


vuh*_*990 5

menu File -> project struct -> module select "app" -> dependencies tab -> + button 
-> File dependency -> PATH/myfile.jar
Run Code Online (Sandbox Code Playgroud)


Int*_*iya 5

第 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 步:现在已经添加了这个jar

在此处输入图片说明


0xF*_*0xF 5

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

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

为什么它有效?打开构建/编辑库和依赖项,您将看到:

{include=[*.jar], dir=libs}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

722000 次

最近记录:

6 年,9 月 前