如何将库项目(如Sherlock ABS)添加到Android Studio?
(不适用于旧的基于ADT Eclipse的捆绑包,而是适用于新的Android Studio。)
如何将库项目(如Sherlock ABS)添加到Android Studio?
(不适用于旧的基于ADT Eclipse的捆绑包,而是适用于新的Android Studio。)
当前回答
如果您需要访问库项目的资源(就像您使用ABS一样),请确保将库项目/模块添加为“模块依赖项”而不是“库”。
其他回答
选项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文件。它应该已自动更新以包含新的依赖项。
来源
以下是视觉指南:
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'
菜单文件->项目结构…:
模块->导入模块
导入库模块后,选择项目模块并添加依赖项:
然后选择导入的模块:
你可以很容易地做到这一点。转到菜单文件->新建->导入模块…:
浏览包含模块的目录。单击“完成”:
转到项目结构并添加模块依赖项:
注意:如果您收到SDK错误,请更新该错误。
打开构建gradle模块应用程序文件并添加依赖项。如果您下载了库,只需导入并构建为grade。
否则,在侧渐变模块应用程序中添加存储库:
repositories {
maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}
第一个存储库将为您下载库。
并编译下载的库:
compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
transitive = true
}
如果要创建库,只需将项目作为导入新模块导入即可。
我认为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,以避免依赖关系混乱。