将Volley(或其他库)合并到Android Studio项目中的最佳方法


81

我已经看到了有关执行此操作的最佳方法的不同建议。这个问题涉及创建一个jar。在其他地方,我看到了一些建议,可以简单地将凌空源复制到您自己的项目中。关于android.com库的这一部分似乎是最权威的。但是,在进行齐射之后,我没有aal库,而那一部分说我应该有。

所以我的问题是:我有一个具有标准布局的现有Android Studio项目和一个git存储库;我该怎么做才能增加凌空抽射?我应该将其下载到哪里?如何将其添加到Android Studio?我需要修改哪些Gradle文件(如果有)。

希望对于你们中的一些人已经做过几次了,这应该是点儿糊涂的东西,但是我一直无法找到一个简单的描述。

-

根据Scott Barta的建议进行更新

排球存储库中的gradle.build文件具有这一行。

apply plugin: 'android-library'

根据文档所述:“库项目不会生成APK,而是会生成.aar包(代表Android存档)。 ”但是,当我构建凌空项目时,不会创建.aar。

我的感觉是,由于Volley是由Android团队创建的库项目,因此很可能打算将其生成并用作.aar包。任何有关生成.aar以及如何生成.aar的建议都将受到赞赏。



那应该可以帮助您达到目标。如果您仍然陷于困境并遇到问题,请完善您的问题,或者问一个新的问题,如果它有很大不同。
Scott Barta 2014年

如果要将Volley用作依赖项模块,可以参考link
cmoaciopm,2014年

请注意,@ ScottBarta的链接已被标记为凌空android网络库的重复。
Brian Marick

在以下链接中有实现此目的的非常详细的说明: gitsubmoduleasandroidtudiomodule.blogspot.in
Arpit Ratan

Answers:


125

最近更新:

请使用jCenter的正式版本。

dependencies {
    compile 'com.android.volley:volley:1.0.0'
}

下面的依存关系指向不再保留的截击。

原始答案

您可以在build.gradle文件的dependency部分中使用它来使用凌空

  dependencies {
      compile 'com.mcxiaoke.volley:library-aar:1.0.0'
  }

更新:

它不是官方的,而是官方Volley的镜像副本。它会与官方Volley Repository定期进行同步和更新,因此您可以放心使用它。

https://github.com/mcxiaoke/android-volley


7
请注意,这不是Volley的官方仓库。那只是某人上传到Maven Central的东西。(AFAIK)
pjco 2014年

2
是的,我知道那个人,但没有区别,只是一面镜子,完全相同,并与官方排球repository1.0.1(在2014.02.13更新)同步。那就是开源的美,所以不用担心您可以使用它。github.com/mcxiaoke/android-volley
pyus13

16
不要试图让所有人都偏执,但是该存储库的维护者很容易会漏掉一些阴暗的东西……如果您不亲自审核存储库,请谨慎行事。
mgalgs 2014年


8
请在下面查看我的答案,现在有Google官方发布的凌空目标(com.android.volley:volley:1.0.0
山姆·斯特恩

138

正如其他人指出的那样,Volley可以在Github上正式使用

将此行添加到您的齐射的gradle依赖项中:

compile 'com.android.volley:volley:1.0.0'


要从源代码安装排球,请阅读以下内容:

我喜欢将官方排球存储库保留在我的应用程序中。这样,我就可以从官方来源获取它,并且可以获取更新,而无需依赖任何其他人并减轻其他人表达的担忧。

在应用程序旁边添加了凌空作为子模块。

git submodule add -b master https://github.com/google/volley.git volley

在我的settings.gradle中,添加以下行以将凌空添加为模块。

include ':volley'

在我的app / build.gradle中,我为凌空项目添加了一个编译依赖项

compile project(':volley')

就这样!现在可以在我的项目中使用Volley。

每当我想将凌空模块与Google的仓库同步时,我都会运行它。

git submodule foreach git pull

7
为什么这不是首选的解决方案?在我看来,您可以获得正式版本,易于更新的内容以及项目及其依赖项之间的语义联系。是否有充分的理由选择其他方法,或者仅仅是其他方法是Android社区中的标准程序?
Andreas Hagen

2
我认为这是首选的解决方案,但Google并未对其进行正确记录。此外,除了上面提到的其他安全问题外,从官方来源获取它还会使您可以控制更新库(尽快或尽可能晚地更新)。
shauvik

3
十分感谢。我唯一需要添加在settings.gradle凌空库的位置:项目(“:凌空”)PROJECTDIR =新的文件(“库/抽射”),因为我把它放在一个库文件夹。
比约恩Kechel

十分感谢 !这应该是官方的答案
Vivek Singh

不必要求版本控制来执行程序包管理器的工作。
基·吉布森

26

如今

dependencies {
    compile 'com.android.volley:volley:1.0.0'
}   

每天有很多不同的方法(原始答案)

  • 使用git中的源文件(此处描述的是相当手动/通用的方式)

    1. 下载/安装git客户端(如果您的系统上尚未安装git客户端):http : //git-scm.com/downloads (或通过git clone https://github.com/git/git...不好的一个,但无法忍受^^)
    2. 执行 git clone https://android.googlesource.com/platform/frameworks/volley
    3. com从内部将文件夹复制[path_where_you_typed_git_clone]/volley/src到您的项目app/src/main/java文件夹(如果已经有com文件夹,请集成它!;-))

    这些文件会立即显示在Android Studio中。对于Eclipse,您将必须right-clicksrc文件夹上并首先按refresh(或F5)。

  • 通过“非官方” Maven镜像使用gradle

    1. 在您的项目src/build.gradle文件中添加以下截击依赖项:

      dependencies {
          compile fileTree(dir: 'libs', include: ['*.jar'])
          // ...
      
          compile 'com.mcxiaoke.volley:library:1.+'
      }
      
    2. 单击Try Again应立即显示在文件顶部的文件,Build如果没有,则仅显示在文件的顶部

    这里的主要“优势”是,这将使您的版本保持最新,而在其他两种情况下,您将不得不手动更新截击。

    在“不利”方面,它不是谷歌官方提供的,而是第三方每周镜像。

    但是,这两点实际上都与您需要/想要的东西有关。另外,如果您不想更新,只需将所需的版本放在此处即可,例如compile 'com.mcxiaoke.volley:library:1.0.7'


在Android Studio 1.0.2中,您无需右键单击jar即可添加它。默认的Gradle规则会自动添加它。另外,如果您是Studio的新用户,则可能会感到惊讶,因为该jar没有显示在“项目视图”中。视图上方微调器中的“ Android”设置已将其过滤掉。将其更改为“项目”以查看您实际上已经完成了一些工作。
Brian Marick

很高兴知道,谢谢!从答案中删除了它!但请注意,对于Beta版用户:如果选择第一个选项(将其添加为库),则还需要在Android Studio的文件夹中right-click打开,并选择在项目中使用它。volley.jarlibsAdd As Library...
Levite 2015年

1
@Levit,关于第二个要点-“使用git中的源文件(这里描述的是相当手动/通用的方式)”我使用android studio,将库添加到了我的项目中,并编辑了settings.gradle和依赖项。它工作正常,但我收到一条消息,说检测到未注册的Vcs根目录,在git下,但未在设置中注册,请您解释一下
Ersen Osman 2015年

@johncarter:使用第二个要点/方式,只需将其放置在正确的文件夹中,而无需编辑设置和依赖项,就可以了。但也有关于在AndroidDevelopers这样一个或多个(而)不全面指导:developer.android.com/training/volley
利未人

2
感谢您的出色回答。Volley.jar方法对我来说非常有用!
森特·马修2015年

11

截止到今天,JCenter上已有Volley官方提供的Android托管副本:

compile 'com.android.volley:volley:1.0.0'

这是从AOSP齐射源代码编译而来的。


感谢您的发布!这应该标记为正确答案。
David Lord

5

更新:

compile 'com.android.volley:volley:1.0.0'

旧答案:您需要在应用模块的build.gradle中添加下一个:

dependencies {
        compile 'com.mcxiaoke.volley:library:1.0.19'
        (Rest of your dependencies)

    }

这不是官方的回购协议,而是一个高度受信任的回购协议。


1
谨防。这里托管的凌空图书馆已经过时,尚未正式托管。请参阅底部的我的帖子。
shauvik

1

要在Android Studio中加入凌空射击,

  1. 将以下命令粘贴到终端(
    git clone https://android.googlesource.com/platform/frameworks/volley)中并运行它。

    请参阅android开发者教程。

    它将在src目录中创建一个名为volley的文件夹。
  2. 然后转到android studio并右键单击该项目。
  3. 从列表中选择New-> Module。
  4. 然后从下面的列表中单击导入现有项目。
  5. 您将看到一个文本输入区域,即源目录,浏览您下载的文件夹(齐射),然后单击完成。
  6. 您将在项目视图中看到一个文件夹齐射。
  7. 切换到android视图并打开build:gradle(Module:app)文件,并在依赖项区域中添加以下行:

    编译'com.mcxiaoke.volley:library-aar:1.0.0'

  8. 现在,同步您的项目并构建您的项目。


0

我已经将Volley设置为一个单独的项目。这样,它就不会与任何项目绑定,而是独立存在。

我还有一个Nexus服务器(内部存储库)设置,因此我可以
在需要的任何项目中以编译'com.mycompany.volley:volley:1.0.4'的方式访问volley 。

每当我更新Volley项目时,我只需要更改其他项目中的版本号即可。

我对这种方法非常满意。


0

compile 'com.mcxiaoke.volley:library:1.0.19'
        compile project('volley')

在依赖项中,应用程序的build.gradle文件下

请勿打扰您库的build.gradle文件。只是您需要更改的是您应用程序的通用文件

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.