如何将库项目(例如Sherlock ABS)添加到Android Studio?
(不是旧的基于ADT Eclipse的捆绑包,而是新的Android Studio。)
Gradle
,请参见此StackOverflow答案。
如何将库项目(例如Sherlock ABS)添加到Android Studio?
(不是旧的基于ADT Eclipse的捆绑包,而是新的Android Studio。)
Gradle
,请参见此StackOverflow答案。
Answers:
Android Studio 1.0更新
自从发布Android Studio 1.0(以及许多版本在v1.0到我上次回答之时的第一个版本)以来,某些事情已经发生了变化。
我的描述着重于通过Gradle文件手动添加外部库项目(以更好地理解过程)。如果你想添加使用Android工作室的创建者库只是检查答案下面视觉引导(有过Android Studio 1.0和从截图之间存在一些差异,但这个过程是非常相似)。
在开始手动将库添加到项目之前,请考虑添加外部依赖项。它不会弄乱您的项目结构。Maven存储库中几乎每个知名的Android库都可用,并且其安装仅需要app/build.gradle
文件中的一行代码:
dependencies {
compile 'com.jakewharton:butterknife:6.0.0'
}
添加库
这是将外部Android库添加到我们的项目的完整过程:
HelloWorld/ app/ - build.gradle // local Gradle configuration (for app only) ... - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
HelloWorld/
)中,创建一个新文件夹:/libs
我们将在其中放置外部库(不需要此步骤-仅用于保持更干净的项目结构)。/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 ...
通过将库添加到来编辑settings.gradle include
。如果像我一样使用自定义路径,则还必须为我们的库定义项目目录。整个settings.gradle应该如下所示:
include ':app', ':PagerSlidingTabStrip'
project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')
5.1如果您遇到“默认配置”错误,请尝试执行此操作,而不是执行步骤5,
include ':app'
include ':libs:PagerSlidingTabStrip'
在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")
}
如果您的图书馆项目没有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']
}
}
}
此外,您可以为项目创建全局配置,其中将包含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)
}
}
//...
就这样。只需单击“与Gradle”图标同步项目。您的库应该在您的项目中可用。
Google I / O 2013-新的Android SDK构建系统是有关使用Gradle构建系统构建Android应用的精彩演示:正如Xavier Ducrohet所说:
Android Studio全部涉及编辑,调试和性能分析。它不再是要构建的。
刚开始时可能有些混乱(特别是对于那些使用Eclipse并从未见过像我这样的蚂蚁的人;)),但最终Gradle为我们提供了一些绝佳的机会,值得学习这个构建系统。
Global libraries
(#10:“现在去全球图书馆”)?除此之外,它还可以按照描述的那样工作:)非常感谢。(我希望Google能够做到这一点-目前如此简单的任务非常艰巨)
这是视觉指南:
Android Studio 0.8.2 更新:
在Android Studio 0.8.2中,转到“ 模块”下的“ 项目结构” -> ,单击加号按钮,然后选择“ 导入现有项目”并导入。然后同步您的Gradle文件。actionbarsherlock
如果遇到错误
错误:SDK Build Tools版本(xx.xx)太低。最低要求是yy.yy
只需打开目录中的build.gradle
文件actionbarsherlock
并将其更新buildToolsVersion
为建议的文件即可。
android {
compileSdkVersion 19
buildToolsVersion 'yy.y.y'
菜单文件 -> 项目结构...:
模块 -> 导入模块
导入库模块后,选择您的项目模块并添加依赖项:
然后选择导入的模块:
Select your project module and add dependency
dependencies { // ... compile project(':library') }
使用菜单文件 -> 项目结构 -> 模块。
我今天开始使用它。有点不同。
对于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版本)。
Modules
,Project Structure
窗口中没有任何部分。
我认为有必要阅读Dependencies,Android Libraries和Multi-project设置。请花几分钟时间。
特别是在非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以避免依赖混乱。
我刚刚找到了一种更简单的方法(而不是直接写入.gradle文件)。
这适用于Android Studio 1.1.0。
菜单文件 -> 新模块...:
单击“导入现有项目”。
选择所需的库和所需的模块。
单击完成。Android Studio会将库导入到您的项目中。它将同步gradle文件。
将导入的模块添加到项目的依赖项中。
右键单击应用程序文件夹->打开模块设置->转到依赖性选项卡->单击“ +”按钮->单击“模块依赖性”。
然后将库模块添加到项目的依赖项中。
???
利润
我发现包括外部库项目的最简单方法是(例如,包括一个Facebook库,该库存储在依赖文件夹中的一个目录中):
在settings.gradle中添加
include ':facebook'
project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
在build.gradle依赖项部分中,添加
compile project ('facebook')
剩下要做的就是将项目与gradle文件同步。
一种将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将检查您的构建并在项目中创建所有必要的更改。之后,您可以在菜单文件中查看这些设置。 -> 项目结构。
C) 如果您的项目和库具有不同的命名空间,则必须右键单击该库并选择选项“添加为库”,然后选择所需的类型。
请记住,在当前版本的Android Studio(0.2.3)中,“项目结构”选项未对“ build.gradle”进行任何自动更改。也许此功能将在下一版本中可用。
然后,相关的build.gradle文件将自动更新。
打开build.gradle文件,并将新的构建规则添加到依赖项关闭中。例如,如果您想添加Google Play服务,则项目的依赖项部分将如下所示:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:6.5.+'
}
在“项目”面板中,Control+单击要向其添加依赖项的模块,然后选择“打开模块设置”。
选择“依赖关系”选项卡,然后选择左下角的+按钮。您可以从以下选项列表中进行选择:
然后,您可以输入有关要添加到项目中的依赖项的更多信息。例如,如果选择“库依赖”,则Android Studio将显示库列表供您选择。
添加依赖项后,检查模块级别的build.gradle文件。它应该已经自动更新为包括新的依赖项。
在要添加外部库项目的项目中,转到菜单文件 -> 新建 -> *导入新模块**,导航到要添加到项目中的库项目,然后选择在其中添加“库”模块您的项目。您将在项目中的应用程序,附带的库旁边获得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')
...
}
不建议通过GUI编辑库依赖项,因为这不会将这些更改写入build.gradle文件。因此,您的项目将不会从命令行构建。我们应该按如下所示直接编辑build.gradle文件。
例如,给出以下结构:
我的项目/
我们可以确定三个项目。Gradle将使用以下名称引用它们:
:app项目可能依赖于库,这是通过声明以下依赖关系来完成的:
dependencies {
compile project(':libraries:lib1')
}
导入ABS模块(从“文件”>“项目结构”)并确保其具有Android 2.2和支持库v4作为依赖关系之后,由于您@Alex,我仍然遇到以下错误
Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'
我将新导入的模块作为依赖项添加到我的主应用程序模块中,从而解决了该问题。
Gradle: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'.
。似乎我的主项目没有看到图书馆项目(ABS)的资源。但是,IDE确实可以识别对类和资源的引用。截屏
只需将库名称添加到应用程序的build.gradle文件的依赖项块中即可。
dependencies {
// ...
implementation 'com.example:some-library:1.0.0'
}
请注意,您应该使用implementation
而不是compile
现在。这是Android Studio 3.0的新增功能。有关差异的说明,请参见此问答。
com.android.tools.build:gradle:2.3.3
如果要继续使用“编译”,则可以继续使用而不是Android Studio 3中的3.0.0。
只需将Android库项目作为模块导入并在Build.gradle中。
应用插件:“ com.android.library”
之后,请按照下列步骤操作:
https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0是如何在最新版本的Android Studio 1.0.1中添加JAR文件和库项目的Dropbox链接。
请参阅带有截图的文档。对于新用户来说,这非常容易。
我找到了解决方案。很简单 遵循froger_mcs的说明。
确保在项目结构->模块(源)中将src文件夹设置为Source文件夹。
基本上,您可以通过三种不同的方式包含JAR文件。最后一个是使用https://bintray.com/ jcenter在线存储库的远程库。但是,如果以其他两种方式之一进行操作,则JAR文件将实际包含在您的项目中。请阅读此链接https://stackoverflow.com/a/35369267/5475941了解更多信息。在这篇文章中,我解释了如何在Android Studio中导入JAR文件,并解释了所有可能的方法。
总之,如果是这样(本地地址),则将它们下载,并且这些JAR文件实际上在项目中:
但是,如果它是这样的Internet地址,它们就是远程库(bintray.com jcenter部分),它们将被远程使用:
希望对您有所帮助。
打开构建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
}
如果要创建库,则只需将项目作为导入新模块导入。
在Android Studio中,转到“内部”应用程序文件夹,然后打开build.gradle文件。在这里,您将看到依赖性{}。在其中,您可以添加库项目并进行同步。现在,在同步库之后,它将被添加到您的项目中,并且您可以在项目中使用其功能和类。
我也遇到了同样的问题,然后我做了以下事情。
我使用菜单文件 ->导入模块菜单将库项目作为模块导入到AndroidStudio IDE中
然后我进入了我的主模块,在该模块中我希望库项目是一个从属项目。
右键单击主模块(在我的情况下,其名称为app)->打开模块设置->进入“依赖项”选项卡->单击+按钮(您将在窗口的右侧看到它)->单击模块依赖项- >从列表中选择您的图书馆项目
应用更改,然后单击OK按钮。
它为我工作。我希望它也会对其他人有帮助。
将此添加到您的构建gradle文件中:
dependencies {
implementation 'com.jakewharton:butterknife:9.0.0'
}
实际上,随着版本的改变,用户界面和菜单上可用选项的改变也随之改变。阅读了这些问题的大部分答案之后,我不得不猜测什么适用于Android Studio 1.1.0。
用鼠标在主级别上选择项目(在此处显示应用程序的名称)。
右键单击,然后选择菜单选项新建,文件夹,资产文件夹。
创建资产文件夹后,将其粘贴或复制到库中,无论您需要使用什么JAR文件。
从Android Studio的主菜单(屏幕顶部)中,选择File- > Project Structure。
然后选择您的项目名称并转到Dependencies选项卡。
单击+对话框左下方的加号(),然后选择文件相关性。
最后,打开最近创建的资产文件夹,选择您复制的JAR文件,然后单击Apply和OK。
清理并重建您的项目。