Android Studio:将jar添加为库?

时间:2013-05-17 11:42:00

标签: android gradle android-gradle gson dependency-management

我正在尝试使用新的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

有谁知道我做错了什么?

34 个答案:

答案 0 :(得分:1499)

我已经在同样的事情上苦苦挣扎了好几个小时,试图让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,您的系统上的命令可能有所不同

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

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

答案 1 :(得分:265)

以下是将本地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。点击左侧第二个面板上方的+符号 - &gt; Java

    Menu

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

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

答案 2 :(得分:108)

在项目中右键单击

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

答案 3 :(得分:47)

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

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

最让您感兴趣的部分是:

  

(在File > Project Structure中)打开模块设置,然后选择“依赖关系”选项卡。

     

在Dependencies选项卡上,单击add并选择Library。

     

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

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

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

答案 4 :(得分: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

答案 5 :(得分:40)

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

档案&gt;新模块......

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

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

答案 6 :(得分:35)

  

Android Studio

中添加外部库的简单步骤      
      
  1. 如果您在 Android 项目浏览器中查看,请将其更改为项目视图,如下所示
  2.         

    enter image description here

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

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

           

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

           

      详细了解Gradle Dependency Mangement

答案 7 :(得分:33)

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

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

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

答案 8 :(得分:17)

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

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

答案 9 :(得分: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。

答案 10 :(得分:13)

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

<强>步骤1: 转到&#34;构建&gt;编辑库和依赖项......&#34;它会打开对话框&#34;项目结构&#34;

enter image description here

<强>步骤-2: 选择&#34; app&#34;然后选择&#34; Dependencies&#34;标签。然后选择&#34;添加&gt; 1图书馆依赖&#34;

enter image description here

<强>步骤-3: &#34;选择图书馆依赖&#34;将显示对话框,指定&#34; gson&#34;在搜索中按下&#34;搜索按钮&#34;

enter image description here

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

enter image description here

按&#34;项目结构&#34;对话。 Gradle会相应地更新您的构建脚本。

enter image description here

希望这会有所帮助:)

答案 11 :(得分:11)

  

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

     

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

     

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

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

答案 12 :(得分:9)

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

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

不要忘记点击&#34;立即同步&#34;

答案 13 :(得分:9)

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

第一个简单的方法。

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

然后右键单击.jar文件并单击add as a library然后选择一个模块然后确定。 您可以在依赖项块中的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文件添加到模块中,然后将此模块添加到我们想要的任何模块中。

导入模块---&gt;选择你的.jar文件 - &gt;而不是作为.jar导入 - enter image description here

然后CTRL + ALT + SHIFT + S - &gt; project sturure - &gt;选择你想要的模块添加一个jar - &gt; Dependencendies - &gt;模块依赖。模块的build.gradle将自动更新。 enter image description here

答案 14 :(得分:7)

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

(我使用的是Android Studio 2.1.2)

enter image description here

第1步

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

enter image description here

第2步: 右键点击应用文件夹 - &gt;新 - &gt;模块

enter image description here

第3步:点击导入JAR / .AAR包然后浏览您的包。例如:enter image description here

OkHttp.jar

答案 15 :(得分:7)

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

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

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

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

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

答案 16 :(得分:7)

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

我们需要将依赖项添加为:

依赖关系{实现'com.google.code.gson:gson:2.2.4'}

就是这样 但是我们也可以下载jar&amp;将其添加为库,但最佳做法是添加Gradle依赖项。

答案 17 :(得分: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

选择新建......目录,在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;

答案 18 :(得分:5)

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

答案 19 :(得分:4)

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

答案 20 :(得分:4)

1)创建一个&#39; your_libs&#39; Project / app / src文件夹中的文件夹。

2)将您的jar文件复制到这个&#39; your_libs&#39;夹

3)在Android Studio中,转到文件 - &gt;项目结构 - &gt;依赖关系 - &gt;添加 - &gt;文件依赖关系并导航到您的jar文件,该文件应位于&#39; src / your_libs&#39;

3)选择您的jar文件,然后单击“确定”

然后你可以在你的build.gradle上看到这样的:compile 文件(&#39; SRC / your_libs / your.jar&#39)

答案 21 :(得分:4)

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

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

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

答案 22 :(得分: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步:现在添加了 jar

enter image description here

答案 23 :(得分:4)

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

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

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

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

答案 24 :(得分:3)

  1. libs级添加了app文件夹。
  2. 在此项目中添加了所有jars
  3. 接下来,选中libs文件夹中的所有广告
  4. 右键单击所选项目,然后说出add library
  5. 然后你会在项目资源管理器中找到jars扩展选项。
  6. 我观察到 CTRL + ALT + SHIFT + S - &gt;项目结构 - &gt; app-module - &gt;依赖关系“最初在(dir: 'libs', include: '*.jar')下已经有compile-option条目。然后按照上述步骤添加jar后,build.gradle获取了条目新添加的罐子本身。

答案 25 :(得分:3)

像之前指出的那样,你应该添加

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

到你的build.gradle文件。

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

答案 26 :(得分:3)

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

转到应用 - &gt; SRC-&GT;主要 - &gt; 资产文件夹(如果不可用则创建它) - &gt;把你的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文件已准备好使用。

答案 27 :(得分:3)

在Mac OS X上:

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

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

  3. 安装gradle v1.6(使用自制程序)

    • brew install gradle
    • gradle -v
    • 如果不是v1.6,请升级homebrew
  4. gradle clean(重建android无效)

  5. 这把我排除在外。

答案 28 :(得分:2)

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

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

将库jar添加到libs文件夹 - &gt;右键单击库 - &gt;点击添加为库 - &gt;它要求您为其添加项目 - &gt;选择你的项目 - &gt;点击确定 以下行自动添加到build.gradle

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

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

答案 29 :(得分: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。最好创建一个包含我们的应用程序需要使用的jar包的文件夹'libs'。

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

    PS:我同时使用

答案 30 :(得分:1)

compile fileTree(dir: 'libs', include: '*.jar')工作正常但compile files(...)未使用Studio Beta 0.8.1进行测试

答案 31 :(得分:0)

我不喜欢&#39;知道为什么,但是当我尝试使用Gradle实现这些解决方案时,我的Android Studio 0.8.14会变得疯狂。我承认我对这个伟大的构建工具知之甚少,但是Studio为什么会破坏我的项目?我设法让它以这种方式工作:将android-support-v13.jar放入&#39; libs&#39;目录,然后我的项目上的F4并添加文件依赖项,我指向android-support-v13.jar。

答案 32 :(得分:0)

在我的情况下添加的库错过了一些依赖,但不幸的是Android Studio(0.8.14)将此作为秘密。

无需手动配置任何内容!我刚刚添加了缺少的库并使用了 app build.gradle文件中的默认依赖项配置,就像这样

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

答案 33 :(得分:0)

做到这一点:

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