如何将Guava添加到我的Android Studio项目中?

首先,我意识到这个问题的存在 – 如何将一个库项目添加到Android Studio? – 不幸的是,它并没有帮助我。

我的目标相当简单。 我想使用Android Studio IDE(0.2.11)和我的代码中的Guava库编写一个Android应用程序。

我不知道Gradle,我只是开始使用Android Studio,而我的Visual Studio / C#背景已经让我失望了,对此我表示歉意(在那个米老鼠的世界里,你通常只是添加一个库引用而不用去)。

我将用截图logging我的步骤。 我主要遵循这个答案给出的build议。

我在我的项目文件夹下创build了一个libraries文件夹。

在这里输入图像说明

我克隆了Guava版本库。

在这里输入图像说明

文件成功出现。

在这里输入图像说明

我去了Project Structure并selectImport Module

在这里输入图像说明

在这里输入图像说明

Create module from existing sourcesselectCreate module from existing sources并同意所有的默认select。

我更新了我的settings.gradle文件, include ':libraries:guava', ':Test'

在这里输入图像说明

和我的build.gradle文件与compile project(":libraries:guava")

在这里输入图像说明

但是每当我尝试重build项目时,我都会得到:

 Error: Gradle: A problem occurred configuring project ':Test'. > Failed to notify project evaluation listener. > Configuration with name 'default' not found. 

我曾尝试把下面的一个build.gradleguava文件夹中:

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android-library' dependencies { compile 'com.android.support:support-v4:13.0.+' } android { compileSdkVersion 17 buildToolsVersion "17.0.0" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } } } 

(如上述答案所述 )。

我已经上下search,find“正确”的番石榴build.gradle

https://code.google.com/p/guava-libraries/wiki/UseGuavaInYourBuild – 也没有帮助我。

我尝试了无数的事情,我不会在这里描述,因为他们是相当随意的 – 我试着添加一个模块依赖项,我尝试在Gradle settings Use auto-import

我知道这不是一个解决问题的方法,我保证我会认真阅读Gradle的用户指南,从1到5.4.2到7.3,但我不能相信这是实现一个不起眼的事情的前提,项目? 为什么没有默认的build.gradle文件,从中可以开始摆弄各种各样的东西,如果有必要?

而真正的问题 – 我如何创build一个应用程序(在Android Studio中)构build,实际上运行在Android设备上,并在顶部允许我使用番石榴,所以我可以按值sorting地图而不写50行代码? 🙂

对于我这个问题的提问语气抱歉,我知道在这里演练,这只是我放下挫折的方式。

根据处理类似问题的问题和答案投了多less票,我相信我不是唯一能从更多指示中受益的人。 我立即开始赏金,但规则禁止我。

如果你只需要使用一个稳定的发布版本的番石榴图书馆,导入它是非常容易的。

只要去你想要使用库的模块(即GuavaTestProject/GuavaTest/build.gradle )的build.gradle文件,

 repositories { mavenCentral() } 

添加一个Maven依赖:

 dependencies { compile group: 'com.google.guava', name: 'guava', version: '15.0' } 

如果需要的话重build你的项目,这是全部(现在用Android Studio 0.2.13创build的新项目进行testing)。

如果你真的需要包含Guava库的源代码,并将它自己编译为Gradle构build模块,那么这是一个完全不同的问题,因为Guava是使用Maven构build的,因此需要将Guava构build系统从Maven移动到Gradle,我认为你的目标非常复杂。

如果您只需浏览源代码或在debugging时查看它,我会做的是:

  • 在单独的文件夹下载Guava源代码:

     git clone https://code.google.com/p/guava-libraries/ git checkout v15.0 
  • 当Android Studio找不到来源时,点击“附加来源”并指向这个替代位置。

我想如果你不需要修改和编译Guava源代码,这是最简单的解决scheme。

这在你的问题很多信息。 我也使用Guava 。 但我不记得经历过这个麻烦

Guava是可用的在mavencentral 。 所以添加番石榴到你的项目应该是相当简单的。 AFAIK,你不需要签出,build立和添加项目依赖等。

请参阅下面的我的应用程序的gradle文件。

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android' repositories { mavenCentral() } // Dependencies dependencies { compile fileTree(dir: 'libs', include: '*.jar') // jar files under the libs folder. compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' // actionbarsherlock, compile 'com.android.support:support-v4:18.0.0' // android support lib compile 'com.google.code.gson:gson:2.2.4' // google GSON compile 'com.google.guava:guava:14.0.1' // guava 14.0.1 } 
 dependencies { compile 'com.google.guava:guava:19.0' } 

来源: https : //github.com/google/guava

编辑:从第22 版,有Android的具体番石榴版本 。

 dependencies { compile 'com.google.guava:guava:22.0-android' } 

*感谢山姆:)

在Android Studio 0.3.0这现在正如它应该在Mac上。 有关添加库的其他选项,请参阅发行说明http://tools.android.com/recent/androidstudio030released


我一直在Windows上工作,有两个选项右键单击库中的jar,你有一个添加到库或者你可以推F4和打开库设置,所以看起来你不必在Windows上挣扎如在Mac上


这就是我所做的。 请阅读到最后,因为它的工作不一致,如果你没有看到蓝色的箭头先尝试有一个解决scheme。 首先我创build了一个libs文件夹。 我不认为这是必要的,但这是一种习惯。

在这里输入图像说明

首先尝试去文件,项目结构。

如果您看到左上angular有一个蓝色的小箭头,那么您将会进入可以添加库的屏幕

在这里输入图像说明

如果你设法在下面的屏幕上按下加号并添加库。 在这里输入图像说明

你也可以在底部看到一条红线,说番石榴不用灯泡。 这个填充将依赖添加到Gradle构build文件 在这里输入图像说明

如果你不看蓝色箭头

转到文件,其他设置,默认项目结构。

在该屏幕上,您可以添加库 在这里输入图像说明

然后回到项目结构并添加它。 问题是,它将作为所有项目的默认值,所以您可以通过项目结构菜单为每个单独的项目添加和删除它。 我不确定这是否是Android Studio中的一个错误,您可以阻止将其添加到单个项目而不更改默认值。

不要使用完整的番石榴库,使用特定于android的版本,

 dependencies { compile 'com.google.guava:guava:23.0-android' }