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

时间:2013-10-07 21:01:03

标签: android gradle android-studio guava android-gradle

首先,我知道这个问题的存在 - How do I add a library project to Android Studio? - 不幸的是,它没有帮助我。

我的目标很简单。我想使用Android Studio IDE(0.2.11)编写Android应用程序,并在我的代码中编写Guava libraries

我不知道Gradle,我只是开始使用Android Studio而我的Visual Studio / C#背景让我失望了,为此我道歉(在Mickey Mouse世界中,你通常只是添加一个库参考并关闭你走)。

我将使用屏幕截图记录我的步骤。我主要遵循this answer给出的建议。

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

enter image description here

我将Guava存储库克隆到其中。

enter image description here

文件已成功显示。

enter image description here

我前往Project Structure并选择Import Module

enter image description here

enter image description here

我选择Create module from existing sources并同意所有默认选择。

我将settings.gradle文件更新为include ':libraries:guava', ':Test'

enter image description here

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

enter image description here

但是,每当我尝试重建项目时,我所得到的只有:

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

我确实尝试将build.gradle放在guava文件夹中:

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']
        }
    }
}

(正如aforementioned answer所说)。

我上下搜索,找到了番石榴的“正确”build.gradle

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

我确实尝试了无数的事情,我不会在这里描述,因为它们很随意 - 我尝试添加模块依赖项,我尝试在Use auto-import中启用Gradle settings等等。

我知道这不是一种解决问题的方法,我保证我会从1到5.4.2到7.3努力阅读Gradle的User Guide,但我无法相信这是实现不起眼的事情的先决条件。只是在项目中添加库?为什么没有默认的build.gradle文件,如果有必要,可以开始摆弄各种各样的东西?

真正的问题 - 我如何创建一个构建的应用程序(在Android Studio中),实际上是在Android设备上运行,并且最重要的是允许我使用Guava以便我可以排序按值而不写50行代码的地图? :)

对于我问题的喋喋不休的语气感到抱歉,我知道在这里练习,这只是我发泄沮丧的方式。

根据解决类似问题的问题和答案的投票数来判断,我确信我不是唯一一个可以从更多指令中受益的人。我会立即开始给它一个赏金,但规则禁止我。

6 个答案:

答案 0 :(得分:43)

如果您只需要使用稳定的,发布的Guava库版本,那么导入它非常容易。

只需转到您要使用该库的模块的build.gradle文件(即GuavaTestProject/GuavaTest/build.gradle),然后立即转到

repositories {
    mavenCentral()
}

添加Maven依赖项:

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

如果需要,重建您的项目,这就是全部(现在使用Android Studio 0.2.13创建的新项目进行测试)。

如果你真的需要包含Guava库的源代码并自己编译为Gradle构建的一个模块,这是一个完全不同的问题,因为Guava是用Maven构建的,所以你需要从Maven移动Guava构建系统Gradle,我认为这对你的目标来说非常复杂。

如果您只需要在调试时浏览源或查看它,我会做的是:

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

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

我认为如果您不需要实际修改和编译Guava源代码,这是最简单的解决方案。

答案 1 :(得分:9)

你的问题中有很多信息。 我也在使用Guava。但我不记得经历过任何这样的麻烦..

Guava上提供了

mavencentral。因此,将guava添加到项目中应该相当简单。 AFAIK,您不需要签出,构建和添加项目依赖项等。

请参阅下面的我的应用程序的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
}

答案 2 :(得分:8)

dependencies {
  compile 'com.google.guava:guava:19.0'
}

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

编辑: 从v22开始,有特定的guava version for Android

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

*谢谢Sam:)

答案 3 :(得分:4)

不要使用完整的guava库,请使用特定于android的版本,

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

答案 4 :(得分:2)

在Android Studio 0.3.0中现在可以在Mac上正常工作。有关添加库的其他选项,请参阅发行说明 http://tools.android.com/recent/androidstudio030released


我现在一直在使用Windows,有两种选择 右键单击libs中的jar,你就有了一个add to library 或者您可以推送F4并打开库设置,这样您就不必像在Mac上那样在Windows上挣扎


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

enter image description here

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

如果你看到左上方有一个蓝色箭头,请按下它,然后你会进入你可以添加图书馆的屏幕

enter image description here

如果您设法进入下面的此屏幕,请按加号并添加库。 enter image description here

您可能还会在底部看到一条红线,表示Guava不能用于灯泡。此填充将依赖性添加到Gradle构建文件 enter image description here

如果你看不到蓝色箭头

转而使用文件,其他设置,默认项目结构。

在该屏幕中,您可以添加库 enter image description here

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

答案 5 :(得分:0)

对于Android Studio 3.2.1

单击“文件/项目结构”菜单(ctrl + alt + shift + S)。在应用程序菜单的“依存关系”选项卡中,按+按钮以添加库依存关系

查找com.google.guava:guava :(无论最新的数字是什么)并将其添加。

Add Guava to Android Studio project Add Guava to Android Studio project