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

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


当前回答

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

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

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

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

其他回答

将其添加到构建渐变文件中:

 dependencies {
     implementation 'com.jakewharton:butterknife:9.0.0'
}

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

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

在settings.gradle中添加包括“:facebook”project(':facebook').projectDir=新文件(settingsDir,'../dependencies/FacebookSDK')在build.gradle dependencies部分,添加编译项目(“facebook”)

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

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

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

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

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

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

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

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

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

库相关性文件相关性模块相关性

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

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

来源

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

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

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

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