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

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


当前回答

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

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

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

其他回答

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

我使用菜单文件->导入模块菜单将库项目作为模块导入到AndroidStudio IDE中然后我转到主模块,在该模块中,我希望库项目作为从属项目右键单击主模块(在我的情况下,它的名称是app)->打开模块设置->进入依赖项选项卡->单击+按钮(您将在窗口右侧看到它)->单击模块依赖项->从列表中选择库项目

应用更改并单击“确定”按钮。

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

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

在要添加外部库项目的项目中,转到菜单“文件”->“新建”->“导入新模块”**,导航到要添加到项目中的库项目,选择在项目中添加“库”模块。您将在项目中获得settings.gradle,除了应用程序外,还包括库,类似于:

include ':app', ':library'

在依赖项部分中添加build.gradle(模块:app):

编译项目(“:库”)

重建项目,就这样。

*您可以添加任意数量的库(模块)。在这种情况下,在settings.gradle中,您将具有:

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

在build.gradle中,您需要:

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

    // Some other dependencies...

    compile project(':lib1')
    compile project(':lib2')
    ...
}

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

例如,给定以下结构:

我的项目/

应用程序/图书馆/库1/lib2语言/

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

:应用程序:库:lib1:库:lib2

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

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

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

浏览包含模块的目录。单击“完成”:

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

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

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