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

Kon*_*ski 20 android gradle guava android-studio android-gradle-plugin

首先,我知道这个问题的存在 - 如何向Android Studio添加库项目? - 不幸的是,它没有帮助我.

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

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

我将用截图记录我的步骤.我大多遵循这个答案给出的建议.

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

在此输入图像描述

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

在此输入图像描述

文件成功出现.

在此输入图像描述

我去了Project Structure并选择了Import Module.

在此输入图像描述

在此输入图像描述

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

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

在此输入图像描述

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

在此输入图像描述

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

Error: Gradle: A problem occurred configuring project ':Test'.
> Failed to notify project evaluation listener.
> Configuration with name 'default' not found.
Run Code Online (Sandbox Code Playgroud)

我确实尝试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']
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

(如前面的答案所说).

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

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

我也尝试了无数东西,因为他们是相当偶然的,我不会在这里形容-我尝试添加一个模块依赖,我试图打开Use auto-importGradle settings

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

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

抱歉我的问题很温和,我知道在这里练习,这只是我放弃挫折感的方式.

根据解决类似问题的问题和答案投了多少票,我敢肯定,我不是唯一一个能从更多指令中受益的人.我会立即开始给它一个赏金,但规则禁止我.

jlh*_*tas 44

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

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

repositories {
    mavenCentral()
}
Run Code Online (Sandbox Code Playgroud)

添加Maven依赖项:

dependencies {
    compile group: 'com.google.guava', name: 'guava', version: '15.0'
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

    git clone https://code.google.com/p/guava-libraries/
    git checkout v15.0
    
    Run Code Online (Sandbox Code Playgroud)
  • 当Android Studio找不到源时,请单击"附加源"并指向此备用位置.

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

  • 没关系,没有关于赏金的问题,我只是想回馈别人给我的一些知识,所以我很高兴它有效!;) (6认同)

Ali*_*aka 10

dependencies {
  compile 'com.google.guava:guava:19.0'
}
Run Code Online (Sandbox Code Playgroud)

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

编辑:从第22节开始,Android有特定的番石榴版本.

dependencies {
  compile 'com.google.guava:guava:22.0-android'
}
Run Code Online (Sandbox Code Playgroud)

*谢谢Sam :)

  • 不要使用完整的番石榴库,请使用特定于android的版本, (2认同)

Var*_*run 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
}
Run Code Online (Sandbox Code Playgroud)


Sam*_*Sam 5

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

dependencies {
    compile 'com.google.guava:guava:23.0-android'
}
Run Code Online (Sandbox Code Playgroud)