在Android Studio中添加外部库

161

我想将外部库https://github.com/foursquare/foursquare-android-oauth添加到我的Android应用中(我使用的是Android Studio,库作者提供给Eclipse的说明在Android Studio中不起作用)。

我尝试使用Maven来完成这个操作,在“文件”->“项目结构”->“依赖关系”中添加了com.foursquare:foursquare-android-nativeoauth-lib:1.0.0,但Gradle同步失败:

Error:Failed to find: com.foursquare:foursquare-android-nativeoauth-lib:1.0.0

当我试图构建我的应用程序(因为我不知道如何修复上述错误)时,我会得到:

Error:A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugCompile'.
> Could not resolve com.foursquare:foursquare-android-nativeoauth-lib:1.0.0.
 Required by:
    ForSquaresOnly:app:unspecified
   > Could not parse POM http://jcenter.bintray.com/com/foursquare/foursquare-android-nativeoauth-lib/1.0.0/foursquare-android-nativeoauth-lib-1.0.0.pom
     > Could not find any version that matches com.foursquare:parent:1.0.0.

有没有其他导入此库的方式?我可以将源代码简单的复制粘贴到我的源代码中还是将其创建为JAR文件?

顺便说一下:如果你在导入后遇到问题,请参考这个问题(我在导入后遇到了这个问题):Manifest merger failed : uses-sdk:minSdkVersion 14


1
这应该会对你有所帮助:https://dev59.com/TmQn5IYBdhLWcg3wxZcn http://www.androidsx.com/how-to-link-an-android-library-project-with-gradle-in-android-studio/ - Gabriel
19个回答

243

请尝试以下方法之一:

方法1)

1- 选择项目视图

enter image description here

2- 将您的JAR文件复制到app -> lib文件夹中

enter image description here

3- 右键单击您的JAR文件,选择"添加为库"

enter image description here enter image description here

4- 在 build.gradle 文件中进行检查

enter image description here


方法二)

1- 文件 -> 新建 -> 新模块

enter image description here

2- 导入 .JAR/.AAR 包

enter image description here

3- 浏览您的JAR文件

enter image description here

4- 完成

5- 文件 -> 项目结构 -> 依赖项

enter image description here

6- 您应该点击“+”按钮,然后点击“模块依赖项”

enter image description here

7- 您将在此处看到您的库

enter image description here

8- 选择您的库并单击“确定”

enter image description here

9- 然后,您将看到您的库已添加。

enter image description here


对于前两种方法,您需要一个JAR文件。您可以搜索http://search.maven.org/以查找与Android相关的JAR文件。例如,在此链接中搜索jdom的结果如下:

Search result for jdom


方法三) Android正在使用http://jcenter.bintray.com/作为远程库。例如,这是链接中搜索jdom的结果。

jcenter jdom

要在此方法中添加库,请按照以下步骤操作:
1- 文件 -> 项目结构 -> 依赖项

enter image description here

2- 点击加号按钮并选择库依赖项

enter image description here enter image description here

3- 找到您的库并选择它,然后点击确定。


20
最佳答案在所有的Stack Overflow答案中。 - Bruno Morais
2
我很高兴你觉得我的回答有用。非常感谢你的反馈。 - Mohammad
1
第二种方法对我有效。感谢您的说明 :) - Hichem Acher
1
非常欢迎。我很高兴这篇文章对您有所帮助。 - Mohammad
1
我在我的Android Studio 3.0.1中的第三步中没有理解“添加为库”的选项。 - Shailendra Madda
显示剩余6条评论

109
尝试以下步骤:

文件 > 项目结构 > 依赖项选项卡 > 添加模块依赖项 (scope = compile)

其中模块依赖项是Android项目库文件夹。


31
不抄袭的情况下怎样做到呢?这个库被其他非Android项目使用并且经常更新。如果复制源代码,那么对原始代码的更改就看不见了。这不是很愚蠢吗? - Brian Reinhold
1
项目结构选项在哪里? - zulkarnain shah
2
发现了一个模块依赖,但是我得到了对话框“选择模块\n选择当前模块应该依赖的模块:\n没有可显示的内容\n[确定] [取消]”。无法选择已下载的库。 - David162795
1
我这样添加了外部库,但出现了错误“无法解析依赖项':app@buildTypeUnitTest/compileClasspath':无法解析项目:zip_file。” 依赖中生成的代码是implementation project(':zip_file')。此外,我正在使用'com.android.tools.build:gradle:3.2.0-rc03'和https://services.gradle.org/distributions/gradle-4.6-all.zip。 - Nikola Samardzija
显示剩余2条评论

45
为了引用外部库项目而无需复制,只需执行以下操作: - 在 setting.gradle中插入这两行代码:
  include ':your-lib-name'
  project(':your-lib-name').projectDir = new File('/path-to-your-lib/your-lib-name)
build.gradle文件的依赖部分插入以下代码行:
compile project(':your-lib-name')

同步项目


3
好的答案,创建一个链接到原始库,这样每当库代码发生变化时,您就不必重新导入! - diman

25

如果一种方法不起作用,请尝试另一种方法,以下是两个最简单的方法:

  1. 在你正在使用的库的 build.gradle 文件中添加库的依赖项,并将你的库粘贴到“外部库”中。

或者

  1. 只需进入app文件夹中的libs文件夹,将所有.jar(例如库文件)文件粘贴到此处。现在重要的是要进入settings.gradle文件,然后在include ':app'之后添加此行:include ':app:libs'。这样就一定会起作用。

20

还有别的导入该库的方法吗?我可以直接将源代码复制粘贴到我的工程中或者创建一个JAR文件吗?

在Android Studio 1.1中导入库的完整步骤:

  1. 进入“File” -> “Import Module”。
  2. 选择“Source Directory”,并浏览项目路径。
  3. 指定模块名称。
  4. 打开build.gradle(Module:app)文件。
  5. 添加以下行,将“internal_project_name”替换为您的模块名称:

    compile project(':internal_project_name')

摘自:如何在Android Studio中添加库


10

我之前也遇到过这个问题。那时候我按照以下步骤进行操作:

  1. 文件 > 新建 > 导入模块 > 选择你的library_project。然后include 'library_project'将会被添加到settings.gradle文件中。

  2. 文件 > 项目结构 > 应用程序 > 依赖项选项卡 > 选择library_project。如果library_project没有显示出来,那么点击+按钮,然后选择你的library_project

  3. 清理并构建你的项目。以下行将会被添加到你的app模块的build.gradle中(提示:这不是定义classpath的文件)。

 dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile project(':library_project')
 }
  1. 如果缺少这些行,您必须手动添加它们并再次清理和构建项目(Ctrl + F9)。

  2. 名为library_project的文件夹将在您的应用程序文件夹中创建。

  3. 如果出现任何图标或任务合并错误,请转到 AndroidManifest 文件并添加 <application tools:replace="icon,label,theme">


8

虽然我想为这个问题给出深入的答案,但是回答晚了。这种方法适用于Android Studio 1.0.0及以上版本。

步骤

  1. 首先将文件夹结构从Android切换到Project

enter image description here

  1. 现在在app - build文件夹中搜索libs文件夹

enter image description here

  1. 一旦你将.jar文件粘贴到libs文件夹中,请右键单击该jar文件,最后点击Add as library。这将处理在build.gradle中添加compile files('libs/library_name.jar') [您不必手动输入此内容]。

enter image description here

现在,您可以开始在项目中使用该库。


在我的情况下,使用第一种方法时,我没有在列表中看到“添加为库”选项。但第二个选项对我起作用了。但我的问题是为什么在我的情况下没有显示“添加为库”选项。 - Abdul Waheed
非常有帮助,谢谢!注意:在更新 Android Studio 后,“添加为库”按钮不再位于列表底部,现在大约是从底部数起的第五个位置。 - JFreeman

8

最简单的方法是按照以下步骤操作:

  1. 进入 文件 -> 新建 -> 导入模块 -> 选择库或项目文件夹

  2. settings.gradle 文件的 include 部分中添加库并同步项目(这样,您就可以在项目结构中看到新的库名称文件夹被添加了)

    include ':mylibraryName'

  3. 进入文件 -> 项目结构 -> 应用程序 -> 依赖关系选项卡 -> 单击加号按钮

  4. 选择模块依赖关系 -> 选择库(您的库名称应该出现在那里)并设置范围(编译或实现)

  5. 在应用程序级别模块的 build.gradle 中的依赖部分中添加此行

    implementation project(':mylibraryName')


7

在Android Studio中添加外部库的三种方法:

  1. 如果你想在你的项目中添加库项目依赖:

    A. 在文件菜单中点击新建并选择导入模块,选择你的库项目路径并点击确定,库项目会自动添加到你的Android Studio项目中。

    B. 现在打开你的主模块(比如app)gradle文件,并在依赖项部分添加项目依赖 dependencies { compile project(':library project name') }

  2. 如果你想添加jar文件:

    A. 将jar文件添加到libs文件夹中。

    B. 添加以下依赖:

    compile fileTree(dir: 'libs', include: '*.jar') //从libs文件夹中添加所有jar文件,如果你只需要添加特定的jar文件,请添加以下依赖:

    compile files('libs/abc.jar')

  3. 从url添加依赖(推荐)。例如

    compile 'com.mcxiaoke.volley:library-aar:1.0.0'


嗨Vinod,你能否解释一下如何使用URL添加依赖项?另外,它可以是一个git URL吗?如果它发生更改,是否可以直接导入到我的项目中? 我对这个开发有点新,请耐心等待,如果这是一个简单的问题 :) - Katakam Nikhil
嗨,Nikhil,请阅读我所提及的与Android依赖相关的文章: https://developer.android.com/studio/build/dependencies.html - vinod

4
如果你需要的库在GitHub上,那么通过JitPack将其添加到Android Studio非常容易。
步骤1. 在build.gradle中添加jitpack仓库:
allprojects { 
  repositories {
    jcenter()
    maven { url "https://jitpack.io" }
  }
}

第二步:将 GitHub 存储库添加为依赖项。
dependencies {
    // ...
    compile 'com.github.Username:LibraryRepo:ReleaseTag'
}

JitPack可以作为Maven仓库使用,类似于Maven Central。好处是维护者不需要上传库。在幕后,JitPack将从GitHub检出代码并编译它。因此,这需要在git存储库中有一个工作的构建文件才能正常工作。
还有一篇关于如何发布Android库的指南

这不会将依赖文件存储在项目树中吗? - user7860670
但是我遇到了这个错误:Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'app\build.gradle' - HY2000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接