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

(不适用于旧的基于ADT Eclipse的捆绑包,而是适用于新的Android Studio。)


当前回答

我认为Dependencies、Android Libraries和多项目设置是必要的阅读。请花几分钟时间这样做。

特别是,在非jar库项目的情况下,请阅读上述源代码中的以下代码片段:

通过使用多项目设置,渐变项目也可以依赖于其他渐变项目。多项目设置通常通过将所有项目作为给定根项目的子文件夹来工作。例如,给定以下结构:

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,以避免依赖关系混乱。

其他回答

以下是视觉指南:

Android Studio 0.8.2更新:

在Android Studio 0.8.2中,转到模块下的项目结构->只需单击加号按钮,然后选择导入现有项目并导入actionbarsherlock。然后同步Gradle文件。

如果你面对错误

错误:SDK生成工具版本(xx.x.x)过低。最低限度必填项为yy.y.y

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

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


菜单文件->项目结构…:

模块->导入模块

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

然后选择导入的模块:

补充一点:如果IDE没有显示任何错误,但当您尝试编译时,会得到如下结果:

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

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

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

您可以使用Gradle依赖项配置[关于]将一些依赖项添加到项目中

<模块名>/build.gradle

dependencies {
  //<gradle_dependency_configuration> '<dependency_name>:<dependency_version>'
  //e.g.
  implementation 'com.android.support:appcompat-v7:1.1.1'
}

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

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

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

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

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

并编译下载的库:

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

如果要创建库,只需将项目作为导入新模块导入即可。