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

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


使用菜单“文件”->“项目结构”->“模块”。

我今天开始使用它。这有点不同。

对于Sherlock,您可能希望删除他们的测试目录,或者将junit.jar文件添加到类路径中。

要使用gradle导入库,必须将其添加到build.gradle(模块的一个)的dependencies部分。

E.g.

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版本)。


按F4显示项目结构,单击库或全局库,然后单击+添加JAR文件。单击Modules what you want add jar,选择Dependencies选项卡,单击+,然后添加Library。


在导入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'

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


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


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

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

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

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


以下是视觉指南:

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'


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

模块->导入模块

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

然后选择导入的模块:


Android Studio 1.0更新

自从Android Studio 1.0发布以来(从我之前的回答开始,许多版本介于1.0版和第一个版本之间),一些事情发生了变化。

我的描述侧重于通过Gradle文件手动添加外部库项目(以便更好地理解过程)。如果你想通过Android Studio创建器添加库,只需查看下面的答案和视觉指南(Android Studio 1.0和截图中的有些不同,但过程非常相似)。

在开始手动向项目添加库之前,请考虑添加外部依赖项。它不会打乱你的项目结构。几乎所有知名的Android库都可以在Maven存储库中找到,其安装只需要app/build.gradle文件中的一行代码:

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

添加库

以下是将外部Android库添加到我们的项目的完整过程:

通过Android Studio创建者创建新项目。我把它命名为HelloWorld。以下是Android Studio创建的原始项目结构:

HelloWorld(HelloWorld)/应用程序/-build.gradle//本地gradle配置(仅适用于应用程序)...-build.gradle//全局渐变配置(用于整个项目)-设置.坡度-梯度.属性...

在根目录(HelloWorld/)中,创建新的文件夹:/libs,我们将在其中放置外部库(这一步骤不是必需的,只是为了保持更干净的项目结构)。将库粘贴到新创建的/libs文件夹中。在本例中,我使用了PagerSlidingTabStrip库(只需从GitHub下载ZIP,将库目录重命名为“PagerSliding TabStrip”并复制它)。以下是我们项目的新结构:

HelloWorld(HelloWorld)/应用程序/-build.gradle//本地渐变配置(仅适用于应用程序)...图书馆/页面滑动选项卡条/-build.gradle//本地渐变配置(仅适用于库)-build.gradle//全局渐变配置(用于整个项目)-设置.坡度-梯度.属性...

通过添加要包含的库来编辑settings.gradle。如果您像我一样使用自定义路径,则还必须为库定义项目目录。整个设置渐变应如下所示:包括“:app”,“:PagerSlidingTabStrip”project(“:PagerSlidingTabStrip”).projectDir=新文件('libs/PagerSlidngTabStrip')

5.1如果您遇到“默认配置”错误,请尝试执行此操作,而不是执行步骤5,

    include ':app'
    include ':libs:PagerSlidingTabStrip'

在app/build.gradle中添加我们的库项目作为依赖项:从属关系{实现文件树(dir:'libs',include:['*.jar'])实现“com.android.support:appcompat-v7:21.0.3”实施项目(“:PagerSlidingTabStrip”)}

6.1.如果您按照步骤5.1进行操作,请按照步骤5.1而不是步骤6进行操作,

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:21.0.3'

        implementation project(":libs:PagerSlidingTabStrip")
    }

如果您的库项目没有build.gradle文件,则必须手动创建它。以下是该文件的示例:应用插件:“com.android.library”从属关系{实现“com.android.support:support-v4:1.0.3”}机器人{compileSdkV版本21buildTools版本“21.1.2”默认配置{minSdk版本14targetSdkV版本21}源集合{主要的,主要的{manifest.srcFile“AndroidManifest.xml”java.srcDirs=['src']res.srcDirs=['res']}}}此外,您可以为项目创建一个全局配置,其中包含每个模块的SDK版本和构建工具版本,以保持一致性。只需编辑gradle.properties文件并添加行:ANDROID_BUILD_MIN_SDK_VERSION=14ANDROID_BUILD_TARGET_SDK_VERSION=21ANDROID_BUILD_TOOLS_VERSION=21.1.3ANDROID_BUILD_SDK_VERSION=21现在,您可以在build.gradle文件(应用程序和库模块中)中使用它,如下所示://...机器人{compileSdkVersion Integer.parseInt(项目.ANDROID_BUILD_SDK_VERSION)buildToolsVersion项目.ANDROID_BILD_TOOLS_VERSION默认配置{minSdkVersion Integer.parseInt(项目.ANDROID_BUILD_MIN_SDK_VERSION)targetSdkVersion Integer.parseInt(项目.ANDROID_BUILD_TARGET_SDK_VERSION)}}//...仅此而已。只需单击“将项目与Gradle同步”图标。您的库应在项目中可用。

谷歌I/O 2013-新的Android SDK构建系统是一个关于使用Gradle构建系统构建Android应用程序的绝佳演示:正如Xavier Ducrohet所说:

AndroidStudio主要是编辑、调试和分析。这与建筑无关。

一开始,它可能有点令人困惑(尤其是对于那些使用Eclipse并且从未见过像我这样的蚂蚁的人;),但最终Gradle给了我们一些很好的机会,值得我们学习这个构建系统。


要解决此问题,只需将abs资源路径添加到项目构建文件中,如下所示:

sourceSets {
    main {
        res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res']
    }
}

所以,我再次编译,没有任何错误。


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

例如,给定以下结构:

我的项目/

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

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

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

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

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

我找到了解决方案。很简单。遵循froger_mcs说明。

确保在ProjectStructure->Modules(Sources)中将src文件夹设置为Source文件夹。


将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)中,“Project structure”选项不会对“build.gradle”进行任何自动更改。也许在下一个版本中会提供此功能。


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


如果您有AndroidStudio0.4.0,您可以在构建路径YourApp/libraries中创建一个新文件夹。复制JAR文件。在那里,右键单击它并“添加为库”。现在您有一个弹出窗口。只需选择目录并按OK,就可以了。


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

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

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


我有一个不同的原因,所以对于人们来说:

repositories {
    mavenCentral()
}

将mavenCentral()更改为jcenter()并添加

allprojects {
    repositories {
        jcenter()
    }
}

https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0是如何在最新版本的AndroidStudio 1.0.1中添加JAR文件和库项目的Dropbox链接。

请查看带有截图的文档。对于新用户来说,这非常容易。


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

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

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

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

并编译下载的库:

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

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


事实上,随着版本的变化,用户界面和菜单上可用的选项也在变化。在阅读了这些问题的大部分答案后,我不得不猜测Android Studio 1.1.0的工作原理。

用鼠标选择主级别的项目(这是它显示应用程序名称的地方)。单击鼠标右键,然后选择菜单选项“新建”、“文件夹”、“资源文件夹”。创建资产文件夹后,将库所需的任何JAR文件粘贴或复制到其中。从Android Studio的主菜单(屏幕顶部)选择文件->项目结构。然后选择项目名称并转到“依赖项”选项卡。单击对话框左下角的加号(+)并选择文件相关性。最后打开最近创建的资产文件夹,选择复制的JAR文件,然后单击apply和OK。

清理并重建项目。


选项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文件。它应该已自动更新以包含新的依赖项。

来源


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

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

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

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


只需在Build.gradle中将Android库项目作为模块导入即可。

应用插件:“com.android.library”

之后,请执行以下步骤:

右键单击模块并选择打开的模块设置选择依赖项,单击+,选择库依赖项,然后添加先前导入的模块。


我刚刚找到了一种更简单的方法(而不是直接写入.gradle文件)。

这是针对Android Studio 1.1.0的。

菜单文件->新建模块…:单击“导入现有项目”。选择所需的库和模块。单击“完成”。Android Studio会将库导入到项目中。它将同步渐变文件。将导入的模块添加到项目的依赖项中。右键单击应用程序文件夹->打开模块设置->转到依赖项选项卡->单击“+”按钮->单击模块依赖项。然后将库模块添加到项目的依赖项中。???利润


这是我在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')
    ...
}

对于Android Studio:

单击Build.gradle(模块:app)。

并添加

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/commons-io-2.4.jar')
}

在您的目录“app”中,创建一个目录“libs”。添加文件yourfile.jar:

最后,编译Gradle文件:


第一条路这是为MacBook工作的。

首先选择builder.gradle文件作为给定屏幕:

在所选屏幕上添加依赖项,如:

选择同步项目。

如果您遇到类似“在项目“:app”中找不到路径为“:signature pad”的项目”的错误,请使用第二种方法:

选择菜单文件->新建->导入模块…:

单击导入模块后,

给出图书馆路径,如我的MacBook路径:

单击Finish(完成)。现在您的库已添加。


基本上,您可以以三种不同的方式包含JAR文件。最后一个是正在使用的远程库https://bintray.com/jcenter在线存储库。但是,如果您以其他两种方式之一执行,JAR文件将实际包含在项目中。请阅读此链接https://stackoverflow.com/a/35369267/5475941了解更多信息。在这篇文章中,我解释了如何在AndroidStudio中导入JAR文件,并解释了所有可能的方法。

总之,如果是这样的(本地地址),则会下载这些JAR文件,并且这些JAR文件实际上在项目中:

但是,如果是这样的互联网地址,它们是远程库(bintray.comjcenter部分),它们将被远程使用:

我希望这有帮助。


在AndroidStudio中,转到应用程序文件夹内部,打开build.gradle文件。这里您将看到依赖项{}。在其中,您可以添加库项目并同步。现在,在同步库之后,它将被添加到项目中,您可以在项目中使用它的函数和类。


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

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

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

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


Android Studio 3.0

只需将库名称添加到应用程序build.gradle文件的依赖项块中。

dependencies {
    // ...
    implementation 'com.example:some-library:1.0.0'
}

请注意,您应该使用实现而不是现在编译。这是Android Studio 3.0的新功能。有关差异的解释,请参阅本问答。


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

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

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

<模块名>/build.gradle

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