821

如何将库项目(例如 Sherlock ABS)添加到Android Studio

(不是针对旧的基于 ADT Eclipse 的包,而是针对新的Android Studio。)

4

31 回答 31

728

Android Studio 1.0 更新

自从 Android Studio 1.0 发布(以及 v1.0 和我之前回答时的第一个版本之间的许多版本)以来,一些事情发生了变化。

我的描述侧重于通过 Gradle 文件手动添加外部库项目(以便更好地理解该过程)。如果您想通过 Android Studio 创建者添加库,只需使用视觉指南检查下面的答案(Android Studio 1.0 与屏幕截图中的内容存在一些差异,但过程非常相似)。

在开始手动将库添加到项目之前,请考虑添加外部依赖项。它不会弄乱您的项目结构。几乎所有著名的 Android 库都可以在Maven存储库中使用,并且它的安装只需要文件中的一行代码app/build.gradle

dependencies {
     compile 'com.jakewharton:butterknife:6.0.0'
}

添加库

这是将外部Android库添加到我们的项目的完整过程:

  1. 通过 Android Studio 创建者创建一个新项目。我将它命名为HelloWorld
  2. 以下是 Android Studio 创建的原始项目结构:
HelloWorld/
      app/
           - build.gradle  // local Gradle configuration (for app only)
           ...
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...
  1. 在根目录 ( HelloWorld/) 中,创建新文件夹:/libs我们将在其中放置外部库(此步骤不是必需的 - 仅用于保持更清洁的项目结构)。
  2. 将您的库粘贴到新创建的/libs文件夹中。在这个例子中,我使用了 PagerSlidingTabStrip 库(只需从 GitHub 下载 ZIP,将库目录重命名为“PagerSlidingTabStrip”并复制它)。这是我们项目的新结构:
HelloWorld/
      app/
           - build.gradle  // Local Gradle configuration (for app only)
           ...
      libs/
           PagerSlidingTabStrip/
                - build.gradle // Local Gradle configuration (for library only)
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...
  1. 通过将您的库添加到来编辑 settings.gradle include。如果您像我一样使用自定义路径,您还必须为我们的库定义项目目录。整个 settings.gradle 应该如下所示:

    include ':app', ':PagerSlidingTabStrip'
    project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')
    

5.1 如果您遇到“默认配置”错误,请尝试此操作而不是第 5 步,

    include ':app'
    include ':libs:PagerSlidingTabStrip'
  1. 将我们的库项目添加为app/build.gradle依赖项:

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(":PagerSlidingTabStrip")
    }
    

6.1。如果您遵循步骤 5.1,请遵循此步骤而不是步骤 6,

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'

        compile project(":libs:PagerSlidingTabStrip")
    }
  1. 如果您的库项目没有build.gradle文件,则必须手动创建它。这是该文件的示例:

        apply plugin: 'com.android.library'
    
        dependencies {
            compile 'com.android.support:support-v4:21.0.3'
        }
    
        android {
            compileSdkVersion 21
            buildToolsVersion "21.1.2"
    
            defaultConfig {
                minSdkVersion 14
                targetSdkVersion 21
            }
    
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src']
                    res.srcDirs = ['res']
                }
            }
        }
    
  2. 此外,您可以为您的项目创建一个全局配置,其中将包含每个模块的 SDK 版本和构建工具版本,以保持一致性。只需编辑gradle.properties文件并添加行:

    ANDROID_BUILD_MIN_SDK_VERSION=14
    ANDROID_BUILD_TARGET_SDK_VERSION=21
    ANDROID_BUILD_TOOLS_VERSION=21.1.3
    ANDROID_BUILD_SDK_VERSION=21
    

    现在您可以在您的build.gradle文件(在应用程序和库模块中)使用它,如下所示:

    //...
    android {
        compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
        buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
    
        defaultConfig {
            minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
            targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
        }
    }
    //...
    
  3. 就这样。只需单击“将项目与 Gradle”图标同步与 Gradle 同步。您的库应该在您的项目中可用。

Google I/O 2013 - The New Android SDK Build System是关于使用 Gradle 构建系统构建 Android 应用程序的精彩演示:正如 Xavier Ducrohet 所说:

Android Studio 是关于编辑、调试和分析的。这不再是关于建造。

一开始它可能有点令人困惑(特别是对于那些使用Eclipse并且从未见过蚂蚁的人 - 像我一样 ;)),但最后 Gradle 给了我们一些很好的机会,值得学习这个构建系统。

于 2013-05-19T20:35:15.657 回答
276

这是视觉指南:

Android Studio 0.8.2更新:

在 Android Studio 0.8.2 中,转到Project Structure -> 在Modules下,只需点击加号按钮并选择Import Existing Project和 import actionbarsherlock。然后同步您的 Gradle 文件。

如果你面对错误

错误:SDK 构建工具版本 (xx.xx) 太低。最低要求是 yy.yy

只需打开目录build.gradle中的文件actionbarsherlock并将其更新buildToolsVersion为建议的文件。

android {
  compileSdkVersion 19
  buildToolsVersion 'yy.y.y'

安卓工作室 0.8.2


菜单文件->项目结构...

第一的

模块->导入模块

第二

导入库模块后,选择你的项目模块并添加依赖:

第三

然后选择导入的模块

向前

于 2013-05-19T12:33:03.580 回答
113

使用菜单File -> Project Structure -> Modules

我今天开始使用它。这有点不同。

对于 Sherlock,也许您想删除他们的测试目录,或者将junit.jar文件添加到类路径中。

要使用 gradle 导入库,您必须将其添加到dependencies您的 build.gradle(模块的)部分。

例如

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.0'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}

Android Studio 正在发生变化。

如果您右键单击 Android Studio 项目部分中的模块文件夹(我使用的是 0.2.10 版本),则存在一个名为“打开模块设置”的部分。

于 2013-05-16T12:57:17.113 回答
53

我会考虑必要的阅读依赖项、Android 库和多项目设置。请花几分钟时间这样做。

特别是,对于非 jar 库项目,请从上面的源代码中阅读以下代码段:

Gradle 项目还可以通过使用多项目设置依赖于其他 gradle 项目。多项目设置通常通过将所有项目作为给定根项目的子文件夹来工作。

例如,给定以下结构:

MyProject/
 + app/
 + libraries/
    + lib1/
    + lib2/

我们可以确定 3 个项目。Gradle 将使用以下名称引用它们:

:app
:libraries:lib1
:libraries:lib2

每个项目都有自己的 build.gradle 声明它是如何构建的。此外,在声明项目的根目录下会有一个名为 settings.gradle 的文件。这给出了以下结构:

MyProject/
 | settings.gradle
 + app/
    | build.gradle
 + libraries/
    + lib1/
       | build.gradle
    + lib2/
       | build.gradle

settings.gradle 的内容很简单:

include ':app', ':libraries:lib1', ':libraries:lib2'

这定义了哪个文件夹实际上是 Gradle 项目。

:app 项目可能依赖于库,这是通过声明以下依赖项来完成的:

dependencies {
    compile project(':libraries:lib1')
}

请注意,很少或根本没有使用 Android Studio GUI 来实现这一点。

我目前正在使用git 子模块将嵌套库链接到实际库 git repo 以避免依赖关系混乱。

于 2013-10-14T08:10:37.423 回答
28

我刚刚找到了一种更简单的方法(而不是直接写入 .gradle 文件)。

这适用于 Android Studio 1.1.0。

  1. 菜单文件->新模块...

    导入现有项目

    单击“导入现有项目”。

  2. 选择所需的库和所需的模块。

  3. 点击完成。Android Studio 会将库导入到您的项目中。它将同步 gradle 文件。

  4. 将导入的模块添加到项目的依赖项中。

    右键单击应用程序文件夹->打开模块设置->转到依赖项选项卡->单击“+”按钮->单击模块依赖项。

    然后将库模块添加到项目的依赖项中。

    添加库模块

  5. ???

  6. 利润

于 2015-06-29T16:49:48.607 回答
18

我发现包含外部库项目的最简单方法是(例如,包含一个 Facebook 库,该库存储在依赖项文件夹中的一个目录中):

  1. 在 settings.gradle 添加

    include ':facebook'
    
    project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
    
  2. 在 build.gradle 依赖项部分,添加

    compile project ('facebook')
    

剩下要做的就是将项目与 gradle 文件同步。

于 2014-08-08T19:58:47.070 回答
16

一种将 JAR 文件作为库添加到 Android Studio 项目的简单方法:

a) 复制您的 *.jar 文件

b) 粘贴到项目下的libs目录中:

在此处输入图像描述

c) 添加到 build.gradle:

dependencies {
    ...
    compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}

b)如果示例 com.example.MYProject 和库 com.example.ScanAPI 中的项目具有相同的命名空间 com.example,Android Studio 将检查您的构建并在您的项目中创建所有必要的更改。之后,您可以在菜单File -> Project Structure中查看这些设置。

c)如果您的项目和库有不同的命名空间,您必须右键单击库并选择“添加为库”选项并选择您需要的类型。

请记住,在当前版本的 Android Studio (0.2.3) 中,“项目结构”选项不会在“build.gradle”中进行任何自动更改。也许这个功能将在下一个版本中可用。

于 2013-08-27T21:40:30.693 回答
13

选项 1:将文件放入项目的 libs/目录

然后相关的 build.gradle 文件将自动更新。

选项 2:手动修改 build.gradle 文件

打开您的 build.gradle 文件并将新的构建规则添加到依赖项闭包中。例如,如果您想添加 Google Play 服务,您的项目的依赖项部分将如下所示:

dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile 'com.google.android.gms:play-services:6.5.+'
   }

选项 3:使用 Android Studio 的用户界面

在“项目”面板中,Control+ 单击要添加依赖项的模块,然后选择“打开模块设置”。

在此处输入图像描述

选择 Dependencies 选项卡,然后选择左下角的 + 按钮。您可以从以下选项列表中进行选择:

  • 库依赖
  • 文件依赖
  • 模块依赖

然后,您可以输入有关要添加到项目中的依赖项的更多信息。例如,如果您选择 Library Dependency,Android Studio 会显示一个库列表供您选择。

添加依赖项后,请检查模块级 build.gradle 文件。它应该已经自动更新以包含新的依赖项。

资源

于 2015-04-03T06:32:46.600 回答
12

这就是我在 Android Studio 1.5+ 中的工作方式

在要添加外部库项目的项目中,转到菜单文件->新建-> *导入新模块**,导航到要添加到项目中的库项目,选择在其中添加“库”模块你的项目。您将在您的项目中获得settings.gradle ,在应用程序旁边,包含库,如下所示:

include ':app', ':library'

在依赖项部分添加build.gradle(Module :app) :

编译项目(':library')

重建项目,就是这样。

*您可以根据需要添加任意数量的库(模块)。在这种情况下,在 settings.gradle 你将拥有:

 include ':app', ':lib1', ':lib2', ...

在 build.gradle 中,您需要:

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

    // Some other dependencies...

    compile project(':lib1')
    compile project(':lib2')
    ...
}
于 2015-12-11T15:04:12.997 回答
12

你可以很容易地做到这一点。转到菜单文件->新建->导入模块...

在此处输入图像描述

浏览包含该模块的目录。点击完成:

在此处输入图像描述

转到项目结构并添加模块依赖

在此处输入图像描述

注意:如果您收到 SDK 错误,请更新该错误。

于 2016-05-28T11:47:28.647 回答
9

如果您需要访问库项目的资源(就像使用 ABS 一样),请确保将库项目/模块添加为“模块依赖项”而不是“库”。

于 2013-05-19T01:04:56.583 回答
8
  1. F4显示项目结构,单击库或全局库,然后单击+添加 JAR 文件。
  2. 单击 Modules what you want 添加 jar,选择Dependencies选项卡,单击+,然后添加 Library。
于 2013-05-16T13:26:01.907 回答
6

不建议通过 GUI 编辑库依赖项,因为这不会将这些更改写入您的 build.gradle 文件。所以你的项目不会从命令行构建。我们应该如下直接编辑 build.gradle 文件。

例如,给定以下结构:

我的项目/

  • 应用程序/
  • 图书馆/
    • lib1/
    • lib2/

我们可以确定三个项目。Gradle 将使用以下名称引用它们:

  1. :应用程序
  2. :图书馆:lib1
  3. :图书馆:lib2

:app 项目可能依赖于库,这是通过声明以下依赖项来完成的:

dependencies {
    compile project(':libraries:lib1')
}
于 2013-05-23T12:05:48.093 回答
5

添加到答案中:如果 IDE 没有显示任何错误,但是当您尝试编译时,您会得到如下信息:

No resource found that matches the given name 'Theme.Sherlock.Light'

您的库项目可能被编译为应用程序项目。要更改此设置,请访问:

菜单文件->项目结构->方面-> [库名称] -> 选中“库模块”。

于 2013-05-19T11:57:38.990 回答
5

第一种方式这适用于 MacBook。

首先选择您的 builder.gradle 文件作为给定屏幕:

在此处输入图像描述

添加依赖项,如在所选屏幕上:

在此处输入图像描述

选择同步项目。

如果您收到类似“Project with path':signature-pad' cannot be found in project ':app'”之类的错误,请使用第二种方法:

选择菜单文件->新建->导入模块...

在此处输入图像描述

点击Import Module后,

在此处输入图像描述

给出库的路径,就像我的 MacBook 路径一样:

在此处输入图像描述

单击完成。现在您的库已添加。

于 2016-02-01T12:20:20.333 回答
5

安卓工作室 3.0

只需将库名称添加到应用程序的build.gradle文件的依赖项块中即可。

dependencies {
    // ...
    implementation 'com.example:some-library:1.0.0'
}

请注意,您应该使用implementation而不是compile现在。这是 Android Studio 3.0 的新功能。有关差异的解释,请参阅此问答。

于 2017-09-14T01:15:20.410 回答
4

导入 ABS 模块(从文件 > 项目结构)并确保它具有 Android 2.2 和支持库 v4 作为依赖项后,我仍然收到以下错误,因为你 @Alex

Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'

我将新导入的模块作为依赖项添加到我的主应用程序模块中,从而解决了问题。

于 2013-05-17T03:38:03.357 回答
3

要解决此问题,您只需将 abs 资源路径添加到项目构建文件中,如下所示:

sourceSets {
    main {
        res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res']
    }
}

所以,我再次编译没有任何错误。

于 2013-05-21T10:26:12.833 回答
3

如果您有 Android Studio .0.4.0,您可以在构建路径中创建一个新文件夹YourApp/libraries. 复制 JAR 文件。在那里,右键单击它并“添加为库”。现在你有一个弹出窗口。只需选择您的目录并按 OK,就可以了。

于 2014-01-30T07:03:17.197 回答
3

https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0是如何在最新版本的 Android Studio 1.0.1 中添加 JAR 文件和库项目的 Dropbox 链接。

请参阅带有屏幕截图的文档。对于新用户来说非常容易。

于 2014-12-20T08:59:15.633 回答
3

只需将 Android 库项目作为模块导入Build.gradle 即可

应用插件:'com.android.library'

之后,请按照下列步骤操作:

  1. 右键单击模块并选择打开模块设置
  2. 选择依赖项,点击+,选择库依赖项,添加之前导入的模块。
于 2015-06-23T13:07:40.530 回答
2

我找到了解决方案。就是这么简单。按照froger_mcs 的说明进行操作

确保将 src 文件夹设为Project Structure -> Modules (Sources) 中的 Source 文件夹。

在此处输入图像描述

于 2013-06-26T11:44:33.130 回答
2

打开构建 gradle 模块应用程序文件并添加您的依赖项。如果您下载库,只需导入并构建为 gradle。

否则在侧 gradle 模块应用程序中添加存储库:

repositories {
        maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}

第一个存储库将为您下载库。

并编译下载的库:

 compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
        transitive = true
    }

如果您正在创建一个库,您只需要将项目作为导入新模块导入。

于 2015-02-10T07:55:31.430 回答
2

我有不同的问题原因,所以对于人们来说:

repositories {
    mavenCentral()
}

将 mavenCentral() 更改为 jcenter() 并添加

allprojects {
    repositories {
        jcenter()
    }
}
于 2014-11-24T15:33:02.253 回答
2

基本上,您可以通过三种不同的方式包含您的 JAR 文件。最后一个是使用https://bintray.com/ jcenter 在线存储库的远程库。但是,如果您以其他两种方式之一执行此操作,则 JAR 文件将实际包含在您的项目中。请阅读此链接https://stackoverflow.com/a/35369267/5475941了解更多信息。在这篇文章中,我解释了如何在 Android Studio 中导入您的 JAR 文件,并解释了所有可能的方法。

综上所述,如果是这样的(本地地址),就下载下来了,这些JAR文件物理在项目中:

在此处输入图像描述

但是,如果是这样的互联网地址,它们是远程库(bintray.com jcenter 部分),它们将被远程使用:

在此处输入图像描述

我希望它有所帮助。

于 2016-02-12T17:50:51.590 回答
1

对于 Android 工作室:

在此处输入图像描述

点击Build.gradle (module: app)

并添加

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/commons-io-2.4.jar')
}

并在您的目录“app”中,创建一个目录“libs”。添加文件 yourfile.jar:

在此处输入图像描述

最后,编译 Gradle 文件:

在此处输入图像描述

于 2016-01-14T15:39:31.157 回答
1

在 Android Studio 中,进入 app 文件夹,然后打开 build.gradle 文件。在这里您将看到依赖项{}。在其中您可以添加库项目并进行同步。现在在同步库之后,它将被添加到您的项目中,您可以在项目中使用它的函数和类。

于 2016-05-20T07:21:14.523 回答
0

我也遇到了同样的问题,然后我做了以下事情。

  1. 我使用菜单File -> Import module menus将库项目作为模块导入我的 AndroidStudio IDE

  2. 然后我去了我的主模块,我希望库项目作为一个依赖项目

  3. 右键单击主模块(在我的情况下,它的名称是app)-> 打开模块设置-> 进入依赖项选项卡-> 单击 + 按钮(您将在窗口右侧得到它)-> 单击模块依赖项- > 从列表中选择您的图书馆项目

应用更改并单击OK按钮。

它对我有用。我希望它也能帮助其他人。

于 2015-06-11T07:27:44.923 回答
0

您可以使用Gradle dependency configuration[About]将一些依赖项添加到您的项目中

<模块名称>/build.gradle

dependencies {
  //<gradle_dependency_configuration> '<dependency_name>:<dependency_version>'
  //e.g.
  implementation 'com.android.support:appcompat-v7:1.1.1'
}
于 2021-05-30T13:52:48.973 回答
-1

事实上,随着版本的变化,用户界面和菜单上可用的选项也在变化。在阅读了这些问题的大部分答案后,我不得不猜测什么适用于Android Studio 1.1.0

  1. 用鼠标选择主级别的项目(这是显示应用程序名称的地方)。

  2. 右键单击,然后选择菜单选项New、Folder、Assets Folder

  3. 创建资产文件夹后,将库所需的任何 JAR 文件粘贴或复制到其中。

  4. 从 Android Studio 的主菜单(屏幕顶部)中选择File -> Project Structure

  5. 然后选择您的项目名称并转到“依赖项”选项卡。

  6. 单击+对话框左下角的加号 ( ) 并选择文件依赖项。

  7. 最后打开最近创建的 assets 文件夹,选择你复制的 JAR 文件,然后点击 apply 和OK

清理并重建您的项目。

于 2015-03-01T04:17:25.007 回答
-1

将此添加到您的构建 gradle 文件中:

 dependencies {
     implementation 'com.jakewharton:butterknife:9.0.0'
}
于 2019-07-24T11:31:26.787 回答